home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / dbase / foxlib.zip / FOXLIB.TXT < prev    next >
Text File  |  1991-03-29  |  167KB  |  6,300 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                                    FOXLIB
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.                             By Sparkle Software
  34.  
  35.             A collection of commands for FoxPro and FoxBASE +
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43. FOXLIB Version 1.0           Copyright (C) Sparkle Software 1990
  44. All Rights Reserved.
  45. FOXLIB is a trademark of Sparkle Software.
  46. FoxBASE + and FoxPro are registered trademarks of Fox Software Inc.
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. DEFINITION OF SHAREWARE
  56.  
  57. Shareware distribution gives users a chance to try software before buying it.
  58. If you try a Shareware program and continue using it, you are expected to
  59. register.  
  60.  
  61. Copyright laws apply to both Shareware and commercial software, and the
  62. copyright holder retains all rights, with a few specific exceptions as stated
  63. below.  Shareware authors are accomplished programmers, just like commercial
  64. authors, and the programs are of comparable quality.  (In both cases, there
  65. are good programs and bad ones).  The main difference is in the method of
  66. distribution.  The author specifically grants the right to copy and
  67. distribute the software, either to all and sundry or to a specific group. 
  68. For example, some authors require written permission before a commercial disk
  69. vendor may copy their Shareware.
  70.  
  71. Shareware is a distribution method, not a type of software.  You should find
  72. software that suits your needs and pocketbook, whether it's commercial or
  73. Shareware.  The Shareware system makes fitting your needs easier, because you
  74. can try before you buy.  And because the overhead is low, prices are low
  75. also. Shareware has the ultimate money-back guarantee -- if you don't use the
  76. product, you don't pay for it.
  77.  
  78. DISCLAIMER - AGREEMENT
  79.  
  80. SPARKLE SOFTWARE PROVIDES FOXLIB "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
  81. EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF FITNESS FOR A
  82. PARTICULAR PURPOSE OR MERCHANTABILITY AND SPARKLE SOFTWARE SHALL NOT BE
  83. LIABLE FOR ANY TORT, INDIRECT, SPECIAL, OR CONSEQUENTIAL DAMAGES SUCH AS LOSS
  84. OF PROFITS, LOSS OF GOODWILL, OR LOSS OF PRODUCTIVITY FROM THE USE OR
  85. INABILITY TO USE THE SOFTWARE FOR ANY PURPOSE.
  86.  
  87. SOME STATES DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES SO THIS LANGUAGE
  88. MAY NOT APPLY TO YOU.  IN SUCH CASE, SPARKLE SOFTWARE LIABILITIES SHALL BE
  89. LIMITED TO A REFUND OF THE PRODUCT'S PURCHASE PRICE.
  90.  
  91. FOXLIB is a "shareware program" and is provided at no charge to the user for
  92. EVALUATION.  Feel free to share it with your friends, but please do not give
  93. it away altered or as part of another system.  The essence of
  94. "user-supported" software is to provide personal computer users with quality
  95. software without high prices, and yet to provide incentive for programmers to
  96. continue to develop new products.  If you find this program useful and find
  97. that you are using FOXLIB and continue to use FOXLIB after 30 days, you must
  98. make a registration payment of $45 (U.S. orders only, international orders
  99. are $65) to Sparkle Software.  The $45 registration fee will license one copy
  100. for use on any one computer at any one time.  You must treat this software
  101. just like a book.  An example is that this software may be used by any number
  102. of people and may be freely moved from one computer location to another, so
  103. long as there is no possibility of it being used at one location while it's
  104. being used at another. Just as a book cannot be read by two different persons
  105. at the same time.
  106.  
  107.  
  108.  
  109. Commercial users of FOXLIB must register and pay for their copies of FOXLIB
  110. within 30 days of first use or their license is withdrawn.  Site-License
  111. arrangements may be made by contacting Sparkle Software.
  112.  
  113. Anyone distributing FOXLIB for any kind of remuneration must first contact
  114. Sparkle Software for authorization.  
  115.  
  116. You are encouraged to pass a copy of FOXLIB along to your friends for
  117. evaluation.  Please encourage them to register their copy if they find that
  118. they can use it.
  119.  
  120. ALL REGISTERED USERS WILL RECEIVE ASSEMBLY LANGUAGE SOURCE CODE FOR ALL
  121. FOXLIB COMMANDS, SAMPLE FOX PROGRAM FILES, A PRINTED MANUAL, AND A 16 PAGE
  122. TUTORIAL SHOWING YOU HOW TO CREATE A FOX COMMAND USING THE MICROSOFT MACRO
  123. ASSEMBLER AND DOS'S DEBUG!
  124.  
  125. When you register FOXLIB, you may not publish the source code in any form. 
  126. No amount of modification and/or rewrite of my source code will allow the
  127. consideration of the resultant source code to be your property.
  128.  
  129. This is the only agreement between you and Sparkle Software.  It cannot and
  130. shall not be modified unless in writing and signed both by you and an
  131. authorized officer of Sparkle Software.
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163. FOXLIB is a trademark of Sparkle Software.
  164. Microsoft, Microsoft Macro Assembler, and MS-DOS are registered trademarks of
  165. Microsoft Corporation.
  166. IBM and PS/2 are registered trademarks of International Business Machines
  167. Corporation.
  168. FoxBASE + and FoxPro are registered trademarks of Fox Software Inc.
  169. Intel is a registered trademark of Intel Corporation.
  170. CompuServe is a registered trademark of CompuServe Incorporated.
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217. Acknowledgements:
  218.  
  219. Software Development
  220. Mike Fieldman
  221.  
  222. Documentation
  223. Mike Fieldman
  224.  
  225. I would like to say "Praise the Lord" for version 1.0 being completed. 
  226. Special thanks go to my very lovely wife Nancy, Dr. Larry Stokes for giving
  227. me my first exposure to personal computers, Fox Software (Chris Williams,
  228. Lori Womack, Gloria Pfeif, Jacqueline Jaynes, David Fulton, and everyone else
  229. at Fox Software), Corey Schwartz, Dr. Jim Rassi for giving me the opportunity
  230. to teach personal computer classes, and of course, Sparky.
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.  
  271.                        TABLE OF CONTENTS
  272.  
  273. ***** Make sure you read the "README.1ST" file before using FOXLIB *****
  274.  
  275. INTRODUCTION ........................................ Page 9-10
  276. HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS ... Page 11
  277. INSTALLING FOXLIB ................................... Page 12-13
  278. REGISTRATION & SOFTWARE SUPPORT ..................... Pages 14-15
  279. USING FOXLIB ........................................ Pages 16-18
  280. EXAMPLES ............................................ Page 19
  281. IMPORTANT! .......................................... Page 20
  282. QUICK START ......................................... Page 21
  283.  
  284. DOS COMMANDS:
  285. CREATE SUBDIRECTORY ................................. Page 23
  286. DOS VERSION ......................................... Page 24
  287. DRIVE READY ......................................... Page 25
  288. GET CURRENT DRIVE ................................... Page 26
  289. GET FILE ATTRIBUTE .................................. Page 27
  290. GET VERIFY FLAG ..................................... Page 28
  291. REMOVE SUBDIRECTORY ................................. Page 29
  292. SET DIRECTORY ....................................... Page 30
  293. SET DRIVE ........................................... Page 31
  294. SET FILE ATTRIBUTE .................................. Page 32
  295. SET VERIFY FLAG ..................................... Page 33
  296.  
  297. EQUIPMENT COMMANDS:
  298. BIOS DATE ........................................... Page 35
  299. CONVENTIONAL MEMORY ................................. Page 36
  300. EXTENDED MEMORY ..................................... Page 37
  301. GAME ADAPTER ........................................ Page 38
  302. MATH COPROCESSOR .................................... Page 39
  303. MICRO CHANNEL ARCHITECTURE .......................... Page 40
  304. NUMBER OF INSTALLED DRIVES .......................... Page 41
  305. PC BUS .............................................. Page 42
  306. PC TYPE PC .......................................... Page 43
  307. PC TYPE XT .......................................... Page 44
  308. PC TYPE AT .......................................... Page 45
  309. PC TYPE PCjr ........................................ Page 46
  310. PC TYPE PC/XT 286 ................................... Page 47
  311. PC TYPE PC CONVERTIBLE .............................. Page 48
  312. PC TYPE PS/2 MODEL 30 ............................... Page 49
  313. PC TYPE PS/2 MODEL 50 ............................... Page 50
  314. PC TYPE PS/2 MODEL 55 ............................... Page 51
  315. PC TYPE PS/2 MODEL 60 ............................... Page 52
  316. PC TYPE PS/2 MODEL 70 ............................... Page 53
  317. PC TYPE PS/2 MODEL 80 ............................... Page 54
  318. PARALLEL PORT ....................................... Page 55
  319. REAL-TIME CLOCK ..................................... Page 56
  320. SCREEN WIDTH ........................................ Page 57
  321. SERIAL PORT ......................................... Page 58
  322.  
  323.  
  324.  
  325.                       TABLE OF CONTENTS
  326.  
  327. KEYBOARD COMMANDS:
  328. CAPS LOCK KEY STATUS ................................ Page 60
  329. INSERT KEY STATUS ................................... Page 61
  330. LEFT SHIFT KEY STATUS ............................... Page 62
  331. NUM LOCK KEY STATUS ................................. Page 63
  332. RIGHT SHIFT KEY STATUS .............................. Page 64
  333. SCROLL LOCK KEY STATUS .............................. Page 65
  334. SET CAPS LOCK KEY OFF ............................... Page 66
  335. SET NUM LOCK KEY OFF ................................ Page 67
  336. SET SCROLL LOCK KEY OFF ............................. Page 68
  337. SET CAPS LOCK KEY ON ................................ Page 69
  338. SET NUM LOCK KEY ON ................................. Page 70
  339. SET SCROLL LOCK KEY ON .............................. Page 71
  340.  
  341. COMMUNICATION COMMANDS:
  342. INITIALIZE COMMUNICATIONS LINE AT 300 BAUD .......... Page 73
  343. INITIALIZE COMMUNICATIONS LINE AT 1200 BAUD ......... Page 74
  344. INITIALIZE COMMUNICATIONS LINE AT 2400 BAUD ......... Page 75
  345. INITIALIZE COMMUNICATIONS LINE AT 4800 BAUD ......... Page 76
  346. INITIALIZE COMMUNICATIONS LINE AT 9600 BAUD ......... Page 77
  347. COM PORT STATUS ..................................... Page 78
  348. COMMUNICATIONS PORT DATA READY STATUS ............... Page 79
  349. COMMUNICATIONS PORT OVERRUN ERROR STATUS ............ Page 80
  350. COMMUNICATIONS PORT PARITY ERROR STATUS ............. Page 81
  351. COMMUNICATIONS PORT FRAMING ERROR STATUS ............ Page 82
  352. COMMUNICATIONS PORT BREAK INTERRUPT STATUS .......... Page 83
  353. COMMUNICATIONS PORT THR STATUS ...................... Page 84
  354. COMMUNICATIONS PORT TSR STATUS ...................... Page 85
  355. COMMUNICATIONS PORT TIME-OUT ERROR STATUS ........... Page 86
  356. INITIALIZE LINE PRINTER ............................. Page 87
  357. LINE PRINTER STATUS ................................. Page 88
  358. MODEM DELTA CLEAR TO SEND STATUS..................... Page 89
  359. MODEM DELTA DATA SET READY STATUS ................... Page 90
  360. MODEM TRAILING EDGE RING DETECTOR STATUS ............ Page 91
  361. MODEM DELTA RECEIVE LINE SIGNAL DETECT STATUS ....... Page 92
  362. MODEM CLEAR TO SEND STATUS .......................... Page 93
  363. MODEM DATA SET READY STATUS ......................... Page 94
  364. MODEM RING INDICATOR STATUS ......................... Page 95
  365. MODEM RECEIVE LINE SIGNAL DETECT STATUS ............. Page 96
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.                        TABLE OF CONTENTS
  380.  
  381. MISCELLANEOUS COMMANDS:
  382. CDROM DRIVER ........................................ Page 98
  383. CDROM VERSION ....................................... Page 99
  384. CURSOR COLUMN POSITION .............................. Page 100
  385. CURSOR ROW POSITION ................................. Page 101
  386. CURSOR SIZE ......................................... Page 102
  387. DAY OF THE WEEK ..................................... Page 103
  388. MOUSE CENTER BUTTON STATUS .......................... Page 104
  389. MOUSE DRIVER ........................................ Page 105
  390. MOUSE HIDE POINTER .................................. Page 106
  391. MOUSE LEFT BUTTON STATUS ............................ Page 107
  392. MOUSE LANGUAGE ...................................... Page 108
  393. MOUSE RIGHT BUTTON STATUS ........................... Page 109
  394. MOUSE SHOW POINTER .................................. Page 110
  395. MOUSE TYPE .......................................... Page 111
  396. MOUSE VERSION ....................................... Page 112
  397. NUMBER OR CHARACTER ................................. Page 113
  398. PRINT SCREEN ........................................ Page 114
  399. XMS DRIVER .......................................... Page 115
  400.  
  401. INDEX ............................................... Page 116-117
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.                                 INTRODUCTION
  434.  
  435. FOXLIB is a command library that will allow you to perform low level commands
  436. from the dot prompt, FoxPro command window, and from within your favorite
  437. programs (i.e. FoxPro and FoxBASE +).  Also, FOXLIB version 1.0 commands can
  438. be moved from one flavor of FOX (i.e.  FoxPro version 1.02 and FoxBASE +
  439. version 2.1) to another without any modification. 
  440.  
  441. Please note that you will see the word FOX being used throughout this manual.
  442. FOX refers to FoxPro and FoxBASE +.
  443.  
  444. FOXLIB was developed for the following reasons:
  445.  
  446. (1) To help you support your FOX application.  For example, if you include
  447. the GETPCENV.PRG program (included on the FOXLIB system disk when you
  448. register) in your application, you can quickly obtain information about your
  449. clients' PC environment.  This should help you in supporting your FOX
  450. applications when you are talking with your client on the phone.  
  451.  
  452. (2) To help you install your FOX application.  For example, if you use the
  453. INSTALL.PRG program (included on the FOXLIB system disk when you register) in
  454. your FOX installation program, you can perform low-level DOS commands in the
  455. background (e.g. MD, CHDIR, etc.).  This will give your installation program
  456. a professional look.
  457.  
  458. (3) To help your FOX program communicate with your printer.  For example, an
  459. end-user has placed the incorrect baud rate in their config.sys file.  You
  460. can initialize the serial printer with the correct baud rate within your FOX
  461. application.
  462.  
  463. FOXLIB will not solve all of your problems, but it will give you an edge in
  464. supporting your FOX programs.
  465.  
  466. You may already have noticed that the examples in this manual are from either
  467. the dot prompt or FoxPro command window.  I did this to show you how easy the
  468. FOXLIB commands are to use.  If you are a beginner to FOX, performing FOXLIB
  469. commands from the dot prompt or Foxpro command window will be easier to
  470. grasp.  The intermediate and advanced FOX users can use all of the FOXLIB
  471. commands in their programs.
  472.  
  473. Also, the FOXLIB commands will become very useful to the FOX user for the
  474. following reasons:
  475.  
  476. (1) When executing DOS commands from the dot prompt or FoxPro command window,
  477. the FOX RUN command requires additional memory than FOXLIB since it has to
  478. load another DOS command.com file into memory.  If the computer you or your
  479. client is using does not have sufficient memory for the RUN command (this
  480. could be due to your application or the amount of memory installed on the
  481. computer), you will receive the dreaded "Insufficient memory" error message
  482. on your computer screen, and you will not be able to execute your DOS
  483. command.
  484.  
  485.  
  486.  
  487. (2) The FOXLIB commands are written in assembly language - the computer's
  488. language.  Thus they are very fast, much faster than the RUN command, and
  489. take very little memory.  As little as 20 bytes!
  490.  
  491. (3) Most of the FOXLIB commands (e.g. nodrives, mousedrv, mathcopr, xmsdrv,
  492. cursor, printer status, etc.) are not accessible from the FOX RUN command.
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.  
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.                HARDWARE/SOFTWARE REQUIREMENTS & PACKAGE CONTENTS
  542.  
  543. In order to use FOXLIB, you must have an IBM PC or 100% compatible, 640k of
  544. RAM, a 3.5" or 5.25" diskette drive, hard disk, FoxPro, FoxBASE +, and MS-DOS
  545. version 3.1 or higher (some of the FOXLIB commands will work with DOS version
  546. 2.1.  When Microsoft enhanced MS-DOS in later versions, e.g. Microsoft CD-ROM
  547. extensions, FOXLIB requires MS-DOS 3.1 or greater).
  548.  
  549. The FOXLIB software package includes the following three items:
  550.  
  551. Command library that includes the binary files (e.g. cursor.bin) to be loaded
  552. and called into your FOX applications.
  553.  
  554. ASCII manual.
  555.  
  556. Registration form.
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.      INSTALLING FOXLIB for both 30-day trial and registered versions
  596.  
  597. To install FOXLIB on your hard disk, perform the following steps:
  598.  
  599. 1.  Create a subdirectory on your hard disk with the name FOXLIB.
  600.  
  601. For example, we'll assume you'll be creating a subdirectory on drive C on
  602. your hard disk.  Type the following ->
  603.  
  604. MD FOXLIB
  605.  
  606. and press the return key.
  607.  
  608. 2.  Place the FOXLIB diskette into your floppy diskette drive, and then type
  609. the letter of the drive where you just placed the FOXLIB diskette.
  610.  
  611. For example, if you placed the FOXLIB diskette into drive A, type the
  612. following ->
  613.  
  614. A:
  615.  
  616. and press the return key.
  617.  
  618. 3.  Copy all of the FOXLIB program files from drive A into the FOXLIB
  619. subdirectory.
  620.  
  621. For example, type the following ->
  622.  
  623. cd\prg
  624.  
  625. copy *.prg c:\FOXLIB
  626.  
  627. and press the return key.
  628.  
  629. 4.  Copy all of the FOXLIB command files from drive A into the FOXLIB
  630. subdirectory.
  631.  
  632. For example, type the following ->
  633.  
  634. cd\bin
  635.  
  636. copy *.bin c:\FOXLIB
  637.  
  638. and press the return key.
  639.  
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649. 5.  Copy all of the FOXLIB source code files from drive A into the FOXLIB
  650. subdirectory.
  651.  
  652. For example, type the following ->
  653.  
  654. cd\asm
  655.  
  656. copy *.asm c:\FOXLIB
  657.  
  658. and press the return key.
  659.  
  660. That's all there is to installing FOXLIB on your hard disk.
  661.  
  662. Please refer to your MS-DOS manual for questions using the CD, MD, and COPY
  663. commands.
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685.  
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.                     REGISTRATION & SOFTWARE SUPPORT
  704.  
  705. PLEASE REGISTER YOUR SOFTWARE IMMEDIATELY BY COMPLETING THE
  706. REGISTRATION FORM ON THE NEXT PAGE.  OTHERWISE, YOU WILL NOT
  707. RECEIVE TELEPHONE SOFTWARE SUPPORT FOR FOXLIB.  BY REGISTRATING 
  708. YOUR SOFTWARE, YOU WILL RECEIVE THE ASSEMBLY LANGUAGE SOURCE
  709. CODE FOR ALL FOXLIB COMMANDS, SAMPLE FOX PROGRAM FILES (E.G. GETPCENV.PRG),
  710. A PRINTED MANUAL, AND A 16 PAGE TUTORIAL SHOWING YOU HOW TO CREATE A FOX
  711. COMMAND USING THE MICROSOFT MACRO ASSEMBLER AND DOS'S DEBUG!
  712.  
  713. Once your registration card has been received, you will receive 30
  714. days free (you do pay for the phone call) software support, and my
  715. telephone number.  During the 30 days of free software support, you
  716. must leave a phone number where I can contact you collect.
  717.  
  718. After the 30 days have expired, you can purchase telephone software
  719. support.  Please contact me for current rates.  I look forward to
  720. answering any questions you may have using FOXLIB.  Please understand
  721. that I cannot answer questions concerning how to program in FOX or
  722. assembly language.  There are plenty of good programming books that
  723. can be purchased.
  724.  
  725. Finally, please send the registration form along with a check for
  726. $45 (U.S. orders only, international orders are $65) when the 30 day trial
  727. period expires.  If you use any of the FOXLIB commands commercially (e.g.
  728. consulting, software development, software testing, etc.) you must register
  729. FOXLIB immediately.
  730.  
  731. It took hundreds of hours to write this library.  Also, this library would
  732. cost from two to four times the registration fee if it was sold commercially. 
  733. Your understanding is deeply appreciated.
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757. Mail check for $45 To:             Sparkle Software
  758.                                    Mike Fieldman
  759.                                    610 E. Bell Rd.
  760.                                    Suite #2136
  761.                                    Phoenix, AZ 85022
  762.  
  763. (International orders are $65)
  764.  
  765. Company:____________________________________________
  766. Name:_______________________________________________
  767. First Name:__________________ Last Name:____________________
  768. Street Address:_____________________________________________
  769.                _____________________________________________
  770. City:___________________ State:__ Zip Code:_________________
  771. Day time phone number:________________________
  772. Evening phone number:_________________________
  773. FOX language you are currently using (please check):
  774. FoxBASE +___ FoxPro___
  775. FOXLIB version:___
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.                         Using FOXLIB in your applications
  812.  
  813. You can execute the FOXLIB commands from the dot prompt, FoxPro command
  814. window, and from within your FOX programs.  This is a summary for using the
  815. FOXLIB commands included on the FOXLIB diskette.  Please refer to each
  816. individual command located in this manual for specific information.
  817.  
  818. In order to use FOXLIB, you must have FOX loaded in memory and be your
  819. foreground (active) application.
  820.  
  821. I will use the CURSOR and NODRIVES FOXLIB commands for examples.  Let's say
  822. you want to change the size of the cursor from a line to a block.  To
  823. implement this you would perform the following commands from the dot prompt
  824. or FoxPro command window:
  825.  
  826. . load c:\FOXLIB\cursor
  827. . FOXLIB = "B"
  828. . call cursor with FOXLIB
  829. . release module cursor
  830.  
  831. the cursor size will now be a █ (block).  Let's examine each dot prompt
  832. command in detail.
  833.  
  834. (1) We loaded the command CURSOR.bin into memory.  Notice you do not use the
  835. extension (.bin) of the file you are loading.
  836.  
  837. (2) We created a parameter, B for block, that we will be sending to the
  838. CURSOR command.  ONLY SEND THE PARAMETER SPECIFIED IN EACH FOXLIB COMMAND,
  839. I.E. DO NOT SEND A PARAMETER OTHER THAN WHAT IS ASKED OF YOU FOR EACH FOXLIB
  840. COMMAND.
  841.  
  842. (3) We called the CURSOR command with the passed parameter "B" (You can pass
  843. character parameters to FOXLIB in either lower or upper case).  
  844.  
  845. (4) We released the command cursor.bin from memory.  AFTER YOU LOAD AND CALL
  846. THE COMMAND YOU WANT TO USE, ALWAYS RELEASE IT FROM MEMORY.
  847.  
  848. Please refer to your FOX manual for questions using the CALL, LOAD, and
  849. RELEASE MODULE commands.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.                    Using FOXLIB in your applications (cont.)
  866.  
  867. The next example uses the NODRIVES FOXLIB command.  If you wanted to
  868. determine the number of logical drives installed on an IBM PC, you would
  869. perform the following steps from the dot prompt or FoxPro command window:
  870.  
  871. . load c:\FOXLIB\nodrives
  872. . FOXLIB = "NODRIVES"
  873. . call nodrives with FOXLIB
  874. . ?asc(substr(FOXLIB,1,1))
  875. 6
  876. . release module nodrives
  877.  
  878. there are six drives installed on this computer system (drives A, B, C, D, E,
  879. and F).  Let's examine each dot prompt command in detail.
  880.  
  881. (1) We loaded the command NODRIVES.bin into memory.  Notice you do not use
  882. the extension (.bin) of the file you are loading.
  883.  
  884. (2) We created a parameter, NODRIVES, that we will be sending to the NODRIVES
  885. command.  ONLY SEND THE PARAMETER SPECIFIED IN EACH FOXLIB COMMAND, I.E. DO
  886. NOT SEND A PARAMETER OTHER THAN WHAT IS ASKED OF YOU FOR EACH FOXLIB COMMAND.
  887.  
  888. (3) We called the NODRIVES command with the parameter "NODRIVES" (You can
  889. pass character parameters to FOXLIB in either lower or upper case).  
  890.  
  891. (4) We determined the number of installed drives by converting the result to
  892. an ASCII code. 
  893.  
  894. (5) Finally, we released the command nodrives.bin from memory.  AFTER YOU
  895. LOAD AND CALL THE COMMAND YOU WANT TO USE, ALWAYS RELEASE IT FROM MEMORY.
  896.  
  897. When a FOXLIB command returns a value, you may have to convert the value to
  898. an ASCII code using just two FOX functions - SUBSTR and ASC.  The SUBSTR and
  899. ASC functions are included with your FOX product (i.e. FoxBASE + and FoxPro).
  900.  
  901. The SUBSTR function returns a specified number of characters from a string. 
  902. For example, the string that was passed to the NODRIVES command was
  903. "NODRIVES."  Since the NODRIVES command returns the value (number of
  904. installed drives) in the first letter of the string "NODRIVES" (in this case
  905. the letter N of NODRIVES), all we have to do is obtain the value of the first
  906. letter of the string.
  907.  
  908. . load nodrives
  909. . FOXLIB = "NODRIVES"
  910. . call nodrives with FOXLIB
  911. . ?substr(FOXLIB,1,1)
  912. . HERE YOU WOULD SEE THE ASCII CODE "SPADE" SYMBOL
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919. We will convert the ASCII code "SPADE" symbol to a number to determine the
  920. number of installed drives.  We'll do this using the ASC function.
  921.  
  922. . ?asc(substr(FOXLIB,1,1))
  923. 6
  924. . release module nodrives
  925.  
  926. If this seems complicated - DON'T WORRY!  Just follow the instructions for
  927. each command and you'll do just fine.  Please refer to your FOX manual for
  928. questions using the SUBSTR and ASC functions.
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951.  
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.                        EXAMPLES for registered version
  974.  
  975. I included the following FOX programs on the registered FOXLIB diskette:
  976.  
  977. GETPCENV.PRG is a simple FOX program that returns information from your PC
  978. environment.  You will want to modify this file to suit your needs.  One use
  979. of this routine would be to include it in a menu of your application to
  980. better solve telephone support calls (I know that this will not solve all
  981. problems, but at least it will give you a feel for the end users
  982. environment).  Then you could ask the end user some basic questions regarding
  983. his/her PC configuration.  The advantage to this is staying in your FOX
  984. application without having to shut it down and have the user perform DOS
  985. commands which he/she may not know.
  986.  
  987. INSTALL.PRG is a simple installation FOX program.  Again, You will want to
  988. modify this file to suit your needs.  This routine can make installing your
  989. FOX application easier.
  990.  
  991. COMMANDS.PRG is a FOX program that includes an example for each command in
  992. this manual.  I did this so you can "cut and paste" the commands you need
  993. into your FOX source code.
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.                                   IMPORTANT!
  1028.  
  1029. 1.  MAKE SURE YOU RELEASE A FOXLIB COMMAND FROM MEMORY USING THE FOX
  1030. "RELEASE MODULE" COMMAND AFTER YOU HAVE LOADED AND CALLED IT.  THIS WILL FREE
  1031. UP MEMORY AND YOU WON'T EXCEED THE MAXIMUM NUMBER OF ALLOWED LOADS IMPOSED BY
  1032. FOX.
  1033.  
  1034. Example:                       . load c:\FOXLIB\mousedrv
  1035.                                . FOXLIB = "MOUSE"
  1036.                                . call mousedrv with FOXLIB
  1037.                                . ?substr(FOXLIB,1,1) = "Y"
  1038.                                .T.
  1039.                     ─────────> . rele modu mousedrv
  1040.  
  1041. 2.  NEVER SEND A PARAMETER OTHER THAN WHAT IS SPECIFIED IN THE FOXLIB
  1042. COMMAND.  OTHERWISE, YOU COULD GET UNWANTED AND UNPREDICTABLE RESULTS.  BELOW
  1043. IS THE INCORRECT WAY TO PASS THE PARAMETER "MOUSE" USING THE MOUSE DRIVER
  1044. FOXLIB COMMAND.
  1045.  
  1046. Example:                       . load c:\FOXLIB\mousedrv
  1047.                     ─────────> . FOXLIB = "MICKEYMOUSE"
  1048.                                . call mousedrv with FOXLIB
  1049.                                . ?substr(FOXLIB,1,1) = "Y"
  1050.                                .T.
  1051.                                . rele modu mousedrv
  1052.  
  1053. Below is the CORRECT way to pass the parameter "MOUSE" using the mouse driver
  1054. FOXLIB command.
  1055.  
  1056. Example:                       . load c:\FOXLIB\mousedrv
  1057.                     ─────────> . FOXLIB = "MOUSE"
  1058.                                . call mousedrv with FOXLIB
  1059.                                . ?substr(FOXLIB,1,1) = "Y"
  1060.                                .T.
  1061.                                . rele modu mousedrv
  1062.  
  1063. Please refer to your FOX manual for questions using the LOAD, CALL, and
  1064. RELEASE MODULE commands.
  1065.  
  1066. 3.  IN A MAINFRAME CLIMATE, YOU HAVE BOTH A TEST AND A PRODUCTION WORKING
  1067. ENVIRONMENT.  MAKE SURE YOU USE THE TEST ENVIRONMENT (I.E. USE ONLY A COPY OF
  1068. YOUR DATA) WHEN FIRST USING ANY OR ALL OF THE FOXLIB COMMANDS.
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.                          QUICK START for registered version
  1082.  
  1083. If you have installed FOXLIB correctly to drive "C" of your hard disk, you
  1084. can execute the GETPCENV.PRG program that came on your FOXLIB system disk. 
  1085. Just type "do getpcenv" from either the dot prompt or from within the FoxPro
  1086. command window.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.  
  1099.  
  1100.  
  1101.  
  1102.  
  1103.  
  1104.  
  1105.  
  1106.  
  1107.  
  1108.  
  1109.  
  1110.  
  1111.  
  1112.  
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.                                      DOS COMMANDS
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.                                         CREATDIR
  1190.  
  1191.  
  1192. Syntax:                        CREATDIR
  1193.  
  1194. Use:                           To create a subdirectory.
  1195.  
  1196. Parameters:                    The directory you want to create (e.g. C:\BACKUP).
  1197.  
  1198. Returns:                       The first character in the sending parameter will
  1199.                                have a "Y" (i.e. true) if the subdirectory was
  1200.                                created, and a "N" if the subdirectory could not be
  1201.                                created (e.g. if it already exists).  If you did not
  1202.                                pass the parameter correctly (e.g. FOXLIB =
  1203.                                "\backup"), your sending parameter will be
  1204.                                unchanged.
  1205.  
  1206. Example:                       . load c:\FOXLIB\creatdir
  1207.                                . FOXLIB = "C:\BACKUP"
  1208.                                . call creatdir with FOXLIB
  1209.                                . ?substr(FOXLIB,1,1) = "Y"
  1210.                                .T.
  1211.                                . rele modu creatdir
  1212.  
  1213.                                From this example, the subdirectory C:\BACKUP was
  1214.                                created.
  1215.  
  1216. Example:                       if substr(FOXLIB,1,1) = "Y"
  1217.                                   copy to c:\backup\filecopy
  1218.                                endif
  1219.  
  1220.                                From the above example, you could save information
  1221.                                to a backup subdirectory for archives.
  1222.  
  1223.  
  1224. See:                           REMOVDIR, SETDIR
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.                                         DOSVERS
  1244.  
  1245.  
  1246. Syntax:                        DOSVERS
  1247.  
  1248. Use:                           To determine the DOS version.
  1249.  
  1250. Parameters:                    DOS
  1251.  
  1252. Returns:                       The first character in the sending parameter will
  1253.                                have the DOS major version number, and the second
  1254.                                character in the sending parameter will have the DOS
  1255.                                minor version number.  If you did not pass the
  1256.                                parameter correctly (e.g. FOXLIB = "ZOS"), your
  1257.                                sending parameter will be unchanged.
  1258.  
  1259. Example:                       . load c:\FOXLIB\dosvers
  1260.                                . FOXLIB = "DOS"
  1261.                                . call dosvers with FOXLIB
  1262.                                . ?asc(substr(FOXLIB,1,1))
  1263.                                3
  1264.                                . ?asc(substr(FOXLIB,2,1))
  1265.                                30
  1266.                                . rele modu dosvers
  1267.  
  1268.                                From this example, the DOS version is 3.30.  Your
  1269.                                application may require a certain DOS version, i.e.
  1270.                                3.30 or higher.
  1271.  
  1272. Example:                       load dosvers
  1273.                                FOXLIB = "DOS"
  1274.                                call dosvers with FOXLIB
  1275.                                IF asc(substr(FOXLIB,1,1)) < 3
  1276.                                   @ 3,0 Say "Application requires DOS 3.3 or"
  1277.                                   @ 4,0 Say "greater.  Press any key to exit."
  1278.                                   Wait ""
  1279.                                   return
  1280.                                Endif
  1281.                                IF asc(substr(FOXLIB,1,1)) = 3 .and.
  1282.                                asc(substr(FOXLIB,2,1)) < 30
  1283.                                   @ 3,0 Say "Application requires DOS 3.3 or"
  1284.                                   @ 4,0 Say "greater.  Press any key to exit."
  1285.                                   Wait ""
  1286.                                   return
  1287.                                Endif
  1288.  
  1289.                                If your application needs more than 20 file handles
  1290.                                open at one time, make sure the DOS version is
  1291.                                greater than or equal to 3.30.
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.                                         DRIVERDY
  1298.  
  1299.  
  1300. Syntax:                        DRIVERDY
  1301.  
  1302. Use:                           To see if floppy disk drive A or B is ready.
  1303.  
  1304. Parameters:                    Drive letter (A or B).
  1305.  
  1306. Returns:                       The first character in the sending parameter will
  1307.                                have a "Y" if the floppy drive is ready, a "N" if
  1308.                                the floppy drive is not ready.  If you did not pass
  1309.                                the parameter correctly (e.g. FOXLIB = "/"), your
  1310.                                sending parameter will be unchanged.
  1311.  
  1312. Example:                       . load c:\FOXLIB\driverdy
  1313.                                . FOXLIB = "B"
  1314.                                . call driverdy with FOXLIB
  1315.                                . ?substr(FOXLIB,1,1) = "Y"
  1316.                                .T.
  1317.                                . rele modu driverdy
  1318.                                
  1319.                                From this example, drive B is ready for retrieval 
  1320.                                or saving of data.
  1321.  
  1322. See:                           FIXEDRRV, GETDRIVE, AND SETDRIVE
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.                                         GETDRIVE
  1352.  
  1353.  
  1354. Syntax:                        GETDRIVE
  1355.  
  1356. Use:                           To determine the current drive.
  1357.  
  1358. Parameters:                    GETDRIVE
  1359.  
  1360. Returns:                       The first character in the sending parameter will
  1361.                                have the current drive letter (A, B, C, etc.).  If
  1362.                                you did not pass the parameter correctly (e.g.
  1363.                                FOXLIB = "ZETDRIVE"), your sending parameter will
  1364.                                be unchanged.
  1365.  
  1366. Example:                       . load c:\FOXLIB\getdrive
  1367.                                . FOXLIB = "GETDRIVE"
  1368.                                . call getdrive with FOXLIB
  1369.                                . ?substr(FOXLIB,1,1)
  1370.                                C
  1371.                                . rele modu getdrive
  1372.                                
  1373.                                From this example, the current drive is C. 
  1374.  
  1375. See:                           SETDRIVE
  1376.  
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.  
  1391.  
  1392.  
  1393.  
  1394.  
  1395.  
  1396.  
  1397.  
  1398.  
  1399.  
  1400.  
  1401.  
  1402.  
  1403.  
  1404.  
  1405.                                         GETATTR
  1406.  
  1407.  
  1408. Syntax:                        GETATTR
  1409.  
  1410. Use:                           To determine the file attribute.
  1411.  
  1412. Parameters:                    The subdirectory and the file name (e.g.
  1413.                                \FOXPRO\FOXPROLN.EXE).  Do not include the drive
  1414.                                letter and the colon, but you must include the
  1415.                                backslash "\".
  1416.  
  1417. Returns:                       The first character in the sending parameter will
  1418.                                have the file attribute.  If you did not pass the
  1419.                                parameter correctly (e.g. FOXLIB = "\FOXPRO\"),
  1420.                                your sending parameter will be unchanged.
  1421.  
  1422. Example:                       . load c:\FOXLIB\getattr
  1423.                                . FOXLIB = "\IO.SYS"
  1424.                                . call getattr with FOXLIB
  1425.                                . ?asc(substr(FOXLIB,1,1))
  1426.                                39
  1427.                                . rele modu getattr
  1428.                                
  1429.                                From this example, the file attribute is archive,
  1430.                                system, hidden, and read-only.  Below is a list of
  1431.                                all possible outcomes:
  1432.  
  1433.                                Archive, system, hidden, read-only = 39
  1434.                                Archive                            = 32
  1435.                                Archive, system                    = 36
  1436.                                Archive, system, hidden            = 38
  1437.                                Archive, hidden                    = 34
  1438.                                Archive, read-only                 = 33
  1439.                                System                             = 4
  1440.                                System, hidden                     = 6
  1441.                                System, read-only                  = 5
  1442.                                Hidden                             = 2
  1443.                                Hidden, read-only                  = 3
  1444.                                Read-only                          = 1
  1445.  
  1446.                                No attributes set                  = 0
  1447.  
  1448. See:                           SETATTR
  1449.  
  1450. Notes:                         You can only obtain the file attribute from the
  1451.                                current drive.  For example, you are in drive C, and
  1452.                                you want to obtain the file attribute for a file on
  1453.                                drive D.  Use the SETDRIVE command to set the
  1454.                                current drive to D, and then use the GETATTR
  1455.                                command.
  1456.  
  1457.  
  1458.  
  1459.                                         GETVERFY
  1460.  
  1461.  
  1462. Syntax:                        GETVERFY
  1463.  
  1464. Use:                           To determine if the verify flag is on or off.
  1465.  
  1466. Parameters:                    GETVERIFY
  1467.  
  1468. Returns:                       The first character in the sending parameter will
  1469.                                have a "Y" if verify is on, a "N" if verify is off. 
  1470.                                If you did not pass the parameter correctly
  1471.                                (e.g. FOXLIB = "ZETVERIFY"), your sending
  1472.                                parameter will be unchanged.
  1473.  
  1474. Example:                       . load c:\FOXLIB\getverfy
  1475.                                . FOXLIB = "GETVERIFY"
  1476.                                . call getverfy with FOXLIB
  1477.                                . ?substr(FOXLIB,1,1) = "Y"
  1478.                                .T.
  1479.                                . rele modu getverfy
  1480.                                
  1481.                                From this example, verify is on.  Having verify
  1482.                                on can dramatically slow down your FOX
  1483.                                application since DOS performs a verify operation
  1484.                                after each disk write to ensure that the data has
  1485.                                been recorded correctly.
  1486.  
  1487. See:                           SETVERFY
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.  
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.                                         REMOVDIR
  1514.  
  1515.  
  1516. Syntax:                        REMOVDIR
  1517.  
  1518. Use:                           To remove a subdirectory.
  1519.  
  1520. Parameters:                    The directory you want to remove (e.g. C:\BACKUP).
  1521.  
  1522. Returns:                       The first character in the sending parameter will
  1523.                                have a "Y" (i.e. true) if the subdirectory was
  1524.                                removed, and a "N" if the subdirectory could not be
  1525.                                removed (e.g. if it already was removed). If you did
  1526.                                not pass the parameter correctly (e.g. FOXLIB =
  1527.                                "\backup"), your sending parameter will be
  1528.                                unchanged.
  1529.  
  1530. Example:                       . load c:\FOXLIB\removdir
  1531.                                . FOXLIB = "C:\BACKUP"
  1532.                                . call removdir with FOXLIB
  1533.                                . ?substr(FOXLIB,1,1) = "Y"
  1534.                                .T.
  1535.                                . rele modu removdir
  1536.  
  1537.                                From this example, the subdirectory C:\BACKUP was
  1538.                                removed.
  1539.  
  1540. See:                           CREATDIR, SETDIR
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.                                         SETDIR
  1568.  
  1569.  
  1570. Syntax:                        SETDIR
  1571.  
  1572. Use:                           To set a subdirectory.
  1573.  
  1574. Parameters:                    The directory you want to set (e.g. C:\BACKUP).
  1575.  
  1576. Returns:                       The first character in the sending parameter will
  1577.                                have a "Y" (i.e. true) if the subdirectory was set,
  1578.                                and a "N" if the subdirectory was not set. If you
  1579.                                did not pass the parameter correctly (e.g. FOXLIB
  1580.                                = "\backup"), your sending parameter will be
  1581.                                unchanged.
  1582.  
  1583. Example:                       . load c:\FOXLIB\setdir
  1584.                                . FOXLIB = "C:\BACKUP"
  1585.                                . call setdir with FOXLIB
  1586.                                . ?substr(FOXLIB,1,1) = "Y"
  1587.                                .T.
  1588.                                . rele modu setdir
  1589.  
  1590.                                From this example, the subdirectory was set to
  1591.                                c"\backup."
  1592.  
  1593. Example:                       if substr(FOXLIB,1,1) = "Y"
  1594.                                   copy to c:\backup\filecopy
  1595.                                endif
  1596.  
  1597.                                From the above example, you could first verify that
  1598.                                a subdirectory exists.  If it does, you could then
  1599.                                copy information to it.
  1600.  
  1601. Notes:                         Please note that when you use the SETDIR FOXLIB
  1602.                                command, you will make that subdirectory the current
  1603.                                subdirectory.
  1604.  
  1605. See:                           CREATDIR, REMOVDIR
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.                                         SETDRIVE
  1622.  
  1623.  
  1624. Syntax:                        SETDRIVE
  1625.  
  1626. Use:                           To set a disk drive.
  1627.  
  1628. Parameters:                    Drive letter (A=0, B=1, C=2,..., Z=25).
  1629.  
  1630. Returns:                       The first character in the sending parameter will
  1631.                                have a "Y" if the drive number was set, a "N" if the
  1632.                                drive number was not set.  If you did not pass the
  1633.                                parameter correctly (e.g. FOXLIB = "/"), your
  1634.                                sending parameter will be unchanged.
  1635.  
  1636. Example:                       . load c:\FOXLIB\setdrive
  1637.                                . FOXLIB = "B"
  1638.                                . call setdrive with FOXLIB
  1639.                                . ?substr(FOXLIB,1,1) = "Y"
  1640.                                .T.
  1641.                                . rele modu setdrive
  1642.                                
  1643.                                From this example, the drive was set to B. 
  1644.  
  1645. See:                           GETDRIVE
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.                                         SETATTR
  1676.  
  1677. Syntax:                        SETATTR
  1678.  
  1679. Use:                           To set the file attribute.
  1680.  
  1681. Parameters:                    The subdirectory, the file name, and the file
  1682.                                attribute (e.g. \FOXPRO\FOXPROLN.EXE,!).  You do not
  1683.                                include the drive letter, but you mus 0' 
  1684. *e
  1685.                                backslash "\".
  1686.  
  1687. Returns:                       The first character in the sending parameter will
  1688.                                have a "Y" if the file attribute was set, a "N" if
  1689.                                the file attribute was not set.  If you did not pass
  1690.                                the parameter correctly (e.g. FOXLIB =
  1691.                                "\FOXPRO\"), your sending parameter will be
  1692.                                unchanged.
  1693.  
  1694. Example:                       . load c:\FOXLIB\setattr
  1695.                                . FOXLIB = "\FOXPRO\MIKE.TXT,!"
  1696.                                . call setattr with FOXLIB
  1697.                                . ?substr(FOXLIB,1,1) = "Y"
  1698.                                .T.
  1699.                                . rele modu setattr
  1700.                                
  1701.                                From this example, the file attribute was set to
  1702.                                archive and read-only.  Below is a list of
  1703.                                parameters to use in setting file attributes.
  1704.  
  1705.                                Archive, system, hidden, read-only = '
  1706.                                Archive, system, hidden            = &
  1707.                                Archive, system                    = $            
  1708.                                Archive, read-only                 = !
  1709.                                Archive, hidden                    = #
  1710.                                Archive                            = space        
  1711.                                System, hidden                     = 6
  1712.                                System, read-only                  = 5
  1713.                                System                             = 4
  1714.                                Hidden, read-only                  = 3            
  1715.                                Hidden                             = 2
  1716.                                Read-only                          = 1
  1717.  
  1718.                                When setting just the archive file attribute, use 
  1719.                                a space.  For example: 
  1720.                                . FOXLIB = "\FOXPRO\MIKE.TXT, "
  1721.  
  1722. See:                           GETATTR
  1723.  
  1724. Notes:                         You can only set the file attribute from the current
  1725.                                drive.  For example, you are in drive C, and you
  1726.                                want to set the file attribute for a file on drive
  1727.                                D.  Use the SETDRIVE command to set the current
  1728.                                drive to D, and then use the SETATTR command.
  1729.                                         SETVERFY
  1730.  
  1731.  
  1732. Syntax:                        SETVERFY
  1733.  
  1734. Use:                           To set the verify flag on or off.
  1735.  
  1736. Parameters:                    1 or 0.  1 to set on, 0 to set off.
  1737.  
  1738. Returns:                       The first character in the sending parameter will
  1739.                                have a "Y" if verify was set on, a "Y" if verify was
  1740.                                set off.  If you did not pass the parameter
  1741.                                correctly (e.g. FOXLIB = "Z"), your sending
  1742.                                parameter will be unchanged.
  1743.  
  1744. Example:                       . load c:\FOXLIB\setverfy
  1745.                                . FOXLIB = "0"
  1746.                                . call setverfy with FOXLIB
  1747.                                . ?substr(FOXLIB,1,1) = "Y"
  1748.                                .T.
  1749.                                . rele modu setverfy
  1750.                                
  1751.                                From this example, verify was successfully set to
  1752.                                off.
  1753.  
  1754. See:                           GETVERFY
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.                                    EQUIPMENT COMMANDS
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810.  
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835.  
  1836.  
  1837.                                         BIOSDATE
  1838.  
  1839.  
  1840. Syntax:                        BIOSDATE
  1841.  
  1842. Use:                           To determine the date of the ROM BIOS.
  1843.  
  1844. Parameters:                    BIOSDATE
  1845.  
  1846. Returns:                       The first eight characters in the FOXLIB parameter
  1847.                                will have the date of the ROM BIOS.  If you did not
  1848.                                pass the parameter correctly (e.g. FOXLIB =       
  1849.                                                     
  1850.                                "ZIOSDATE"), your sending parameter will be
  1851.                                unchanged.
  1852.  
  1853. Example:                       . load c:\FOXLIB\biosdate
  1854.                                . FOXLIB = "BIOSDATE"
  1855.                                . call biosdate with FOXLIB
  1856.                                . ?FOXLIB
  1857.                                06/26/89
  1858.                                . rele modu biosdate
  1859.                                                                 
  1860.                                From this example, the date of the ROM BIOS is
  1861.                                June 26, 1989.
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.                                         CONVMEM
  1892.  
  1893.  
  1894. Syntax:                        CONVMEM
  1895.  
  1896. Use:                           To determine the amount of installed conventional
  1897.                                memory.
  1898.  
  1899. Parameters:                    CONV
  1900.  
  1901. Returns:                       The first three characters in the sending parameter
  1902.                                will have the amount of conventional memory       
  1903.                                                       
  1904.                                installed on the computer system.  If you did not
  1905.                                pass the parameter correctly (e.g. FOXLIB =
  1906.                                "ZONV"), your sending parameter will be unchanged.
  1907.  
  1908. Example:                       . load c:\FOXLIB\convmem
  1909.                                . FOXLIB = "CONV"
  1910.                                . call convmem with FOXLIB
  1911.                                . ?substr(FOXLIB,1,3)
  1912.                                640
  1913.                                . rele modu convmem
  1914.  
  1915.                                From this example, there is 640K of conventional
  1916.                                memory installed on the computer system.
  1917.  
  1918. Example:                       if val(substr(FOXLIB,1,3) <> 640
  1919.                                   @ 1,0 Say "Error!  Need 640K of conventional"
  1920.                                   @ 2,0 Say "memory to load application." 
  1921.                                   @ 3,0 Say "program."
  1922.                                endif
  1923.  
  1924.                                If your application requires 640K of conventional
  1925.                                memory, first determine the amount of installed
  1926.                                conventional memory before loading your program.
  1927.  
  1928. See:                           EXTMEM
  1929.  
  1930.  
  1931.  
  1932.  
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945.                                         EXTMEM
  1946.  
  1947.  
  1948. Syntax:                        EXTMEM
  1949.  
  1950. Use:                           To determine the amount of extended memory.
  1951.  
  1952. Parameters:                    EXTMEM
  1953.  
  1954. Returns:                       The first five characters in the sending parameter
  1955.                                will have the amount of extended memory installed 
  1956.                                on the computer system.  If you did not pass the
  1957.                                parameter correctly (e.g. FOXLIB = "ZXTMEM"), your
  1958.                                sending parameter will be unchanged.
  1959.  
  1960. Example:                       . load c:\FOXLIB\extmem
  1961.                                . FOXLIB = "EXTMEM"
  1962.                                . call extmem with FOXLIB
  1963.                                . ?RTRIM(FOXLIB)
  1964.                                3072
  1965.                                . rele modu extmem
  1966.  
  1967.                                From this example, there is 3072K of extended
  1968.                                memory installed on the computer system.  Notice the
  1969.                                FOX function RTRIM being used here to remove any
  1970.                                trailing spaces.
  1971.  
  1972. See:                           CONVMEM
  1973.  
  1974.  
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.  
  1985.  
  1986.  
  1987.  
  1988.  
  1989.  
  1990.  
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997.  
  1998.  
  1999.                                         GAMEADAP
  2000.  
  2001.  
  2002. Syntax:                        GAMEADAP
  2003.  
  2004. Use:                           To determine if a game adapter is installed.
  2005.  
  2006. Parameters:                    GAME
  2007.  
  2008. Returns:                       The first character in the sending parameter will
  2009.                                have a "Y" if a game adapter is installed, a "N" if
  2010.                                it does not exist. If you did not pass the parameter
  2011.                                correctly (e.g. FOXLIB = "ZAME"), your sending
  2012.                                parameter will be unchanged.
  2013.  
  2014. Example:                       . load c:\FOXLIB\gameadap
  2015.                                . FOXLIB = "GAME"
  2016.                                . call gameadap with FOXLIB
  2017.                                . ?substr(FOXLIB,1,1) = "Y"
  2018.                                .T.
  2019.                                . rele modu gameadap
  2020.                                
  2021.                                From this example, a game adapter is installed.
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039.  
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.                                         MATHCOPR
  2054.  
  2055.  
  2056. Syntax:                        MATHCOPR
  2057.  
  2058. Use:                           To determine if a math coprocessor is present.
  2059.  
  2060. Parameters:                    MATH
  2061.  
  2062. Returns:                       The first character in the sending parameter will
  2063.                                have a "Y" if a math coprocessor exists, a "N" if 
  2064.                                it does not exist. If you did not pass the parameter
  2065.                                correctly (e.g. FOXLIB = "ZATH"), your sending
  2066.                                parameter will be unchanged.
  2067.  
  2068. Example:                       . load c:\FOXLIB\mathcopr
  2069.                                . FOXLIB = "MATH"
  2070.                                . call mathcopr with FOXLIB
  2071.                                . ?substr(FOXLIB,1,1) = "Y"
  2072.                                .T.
  2073.                                . rele modu mathcopr
  2074.                                
  2075.                                From this example, a math coprocessor is installed.
  2076.  
  2077.  
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.                                         MCA
  2108.  
  2109.  
  2110. Syntax:                        MCA
  2111.  
  2112. Use:                           To determine if Micro Channel Architecture.
  2113.  
  2114. Parameters:                    MCA
  2115.  
  2116. Returns:                       The first character in the sending parameter will
  2117.                                have a "Y" if a Micro Channel Architecture is
  2118.                                present, a "N" if it is not present. If you did not
  2119.                                pass the parameter correctly (e.g. FOXLIB =
  2120.                                "ZCA"), your sending parameter will be unchanged.
  2121.  
  2122. Example:                       . load c:\FOXLIB\mca
  2123.                                . FOXLIB = "MCA"
  2124.                                . call mca with FOXLIB
  2125.                                . ?substr(FOXLIB,1,1) = "Y"
  2126.                                .T.
  2127.                                . rele modu mca
  2128.                                
  2129.                                From this example, Micro Channel Architecture is
  2130.                                present.
  2131.  
  2132. See:                           PCBUS
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.  
  2142.  
  2143.  
  2144.  
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.  
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158.  
  2159.  
  2160.  
  2161.                                         NODRIVES
  2162.  
  2163.  
  2164. Syntax:                        NODRIVES
  2165.  
  2166. Use:                           To determine the number of installed disk drives. 
  2167.  
  2168. Parameters:                    NODRIVES
  2169.  
  2170. Returns:                       The first character in the sending parameter will
  2171.                                have the number of disk drives installed.  If you
  2172.                                did not pass the parameter correctly (e.g. FOXLIB
  2173.                                = "ZODRIVES"), your sending parameter will be
  2174.                                unchanged.
  2175.  
  2176. Example:                       . load c:\FOXLIB\nodrives
  2177.                                . FOXLIB = "NODRIVES"
  2178.                                . call nodrives with FOXLIB
  2179.                                . ?asc(substr(FOXLIB,1,1))
  2180.                                26
  2181.                                . rele modu nodrives
  2182.                                                                 
  2183.                                From this example, there are 26 installed disk
  2184.                                drives.  These disk drives could be two floppy
  2185.                                drives A and B; a hard disk partitioned into
  2186.                                three drives C, D, and E; and ram disks (F through
  2187.                                Z).
  2188.  
  2189.  
  2190.  
  2191.  
  2192.  
  2193.  
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.                                         PCBUS
  2216.  
  2217.  
  2218. Syntax:                        PCBUS
  2219.  
  2220. Use:                           To determine if PC bus I/O channel.
  2221.  
  2222. Parameters:                    PCBUS
  2223.  
  2224. Returns:                       The first character in the sending parameter will
  2225.                                have a "Y" if a PC bus I/O channel is present, a "N"
  2226.                                if it is not present. If you did not pass the
  2227.                                parameter correctly (e.g. FOXLIB = "ZCBUS"), your
  2228.                                sending parameter will be unchanged.
  2229.  
  2230. Example:                       . load c:\FOXLIB\pcbus
  2231.                                . FOXLIB = "PCBUS"
  2232.                                . call pcbus with FOXLIB
  2233.                                . ?substr(FOXLIB,1,1) = "Y"
  2234.                                .T.
  2235.                                . rele modu pcbus
  2236.                                
  2237.                                From this example, PC bus I/O channel is present.
  2238.  
  2239. See:                           MCA
  2240.  
  2241. Notes:                         This command will not work on the PC/AT dated before
  2242.                                6/10/85.
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.  
  2258.  
  2259.  
  2260.  
  2261.  
  2262.  
  2263.  
  2264.  
  2265.  
  2266.  
  2267.  
  2268.  
  2269.                                         PC
  2270.  
  2271.  
  2272. Syntax:                        PC
  2273.  
  2274. Use:                           To determine if PC.
  2275.  
  2276. Parameters:                    PC
  2277.  
  2278. Returns:                       The first character in the sending parameter will
  2279.                                have a "Y" if PC, a "N" if it is not a PC. If you
  2280.                                did not pass the parameter correctly (e.g. FOXLIB
  2281.                                = "ZC"), your sending parameter will be unchanged.
  2282.  
  2283. Example:                       . load c:\FOXLIB\pc
  2284.                                . FOXLIB = "PC"
  2285.                                . call pc with FOXLIB
  2286.                                . ?substr(FOXLIB,1,1) = "Y"
  2287.                                .T.
  2288.                                . rele modu pc
  2289.                                                                 
  2290.                                From this example, it is a true PC.
  2291.  
  2292.  
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.  
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322.  
  2323.                                         PCXT
  2324.  
  2325.  
  2326. Syntax:                        PCXT
  2327.  
  2328. Use:                           To determine if PC/XT.
  2329.  
  2330. Parameters:                    PCXT
  2331.  
  2332. Returns:                       The first character in the sending parameter will
  2333.                                have a "Y" if PC/XT, a "N" if it is not a PC/XT. If
  2334.                                you did not pass the parameter correctly (e.g.
  2335.                                FOXLIB = "ZCXT"), your sending parameter will be
  2336.                                unchanged.
  2337.  
  2338. Example:                       . load c:\FOXLIB\pcxt
  2339.                                . FOXLIB = "PCXT"
  2340.                                . call pcxt with FOXLIB
  2341.                                . ?substr(FOXLIB,1,1) = "Y"
  2342.                                .T.
  2343.                                . rele modu pcxt
  2344.                                                                 
  2345.                                From this example, it is a PC/XT.
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.                                         PCAT
  2378.  
  2379.  
  2380. Syntax:                        PCAT
  2381.  
  2382. Use:                           To determine if PC/AT.
  2383.  
  2384. Parameters:                    PCAT
  2385.  
  2386. Returns:                       The first character in the sending parameter will
  2387.                                have a "Y" if PC/AT, a "N" if it is not a PC/AT. If
  2388.                                you did not pass the parameter correctly (e.g.
  2389.                                FOXLIB = "ZCAT"), your sending parameter will be
  2390.                                unchanged.
  2391.  
  2392. Example:                       . load c:\FOXLIB\pcat
  2393.                                . FOXLIB = "PCAT"
  2394.                                . call pcat with FOXLIB
  2395.                                . ?substr(FOXLIB,1,1) = "Y"
  2396.                                .T.
  2397.                                . rele modu pcat
  2398.                                                                 
  2399.                                From this example, it is a PC/AT.
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.                                         PCJR
  2432.  
  2433.  
  2434. Syntax:                        PCJR
  2435.  
  2436. Use:                           To determine if PC/JR.
  2437.  
  2438. Parameters:                    PCJR
  2439.  
  2440. Returns:                       The first character in the sending parameter will
  2441.                                have a "Y" if PC/JR, a "N" if it is not a PC/JR. If
  2442.                                you did not pass the parameter correctly (e.g.
  2443.                                FOXLIB = "ZCJR"), your sending parameter will be
  2444.                                unchanged.
  2445.  
  2446. Example:                       . load c:\FOXLIB\pcjr
  2447.                                . FOXLIB = "PCJR"
  2448.                                . call pcjr with FOXLIB
  2449.                                . ?substr(FOXLIB,1,1) = "Y"
  2450.                                .T.
  2451.                                . rele modu pcjr
  2452.                                                                 
  2453.                                From this example, it is a PC jr.
  2454.  
  2455.  
  2456.  
  2457.  
  2458.  
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483.  
  2484.  
  2485.                                         PCXT286
  2486.  
  2487.  
  2488. Syntax:                        PCXT286
  2489.  
  2490. Use:                           To determine if PC/XT 286.
  2491.  
  2492. Parameters:                    PCXT286
  2493.  
  2494. Returns:                       The first character in the sending parameter will
  2495.                                have a "Y" if PC/XT 286, a "N" if it is not a PC/XT
  2496.                                286. If you did not pass the parameter correctly
  2497.                                (e.g. FOXLIB = "ZCXT286"), your sending parameter
  2498.                                will be unchanged.
  2499.  
  2500. Example:                       . load c:\FOXLIB\pcxt286
  2501.                                . FOXLIB = "PCXT286"
  2502.                                . call pcxt286 with FOXLIB
  2503.                                . ?substr(FOXLIB,1,1) = "Y"
  2504.                                .T.
  2505.                                . rele modu pcxt286
  2506.                                                                 
  2507.                                From this example, it is a PC/XT 286.
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.                                         PCCONV
  2540.  
  2541.  
  2542. Syntax:                        PCCONV
  2543.  
  2544. Use:                           To determine if PC Convertible.
  2545.  
  2546. Parameters:                    PCCONV
  2547.  
  2548. Returns:                       The first character in the sending parameter will
  2549.                                have a "Y" if PC Convertible, a "N" if it is not a
  2550.                                PC Convertible. If you did not pass the parameter
  2551.                                correctly (e.g. FOXLIB = "ZCCONV"), your sending
  2552.                                parameter will be unchanged.
  2553.  
  2554. Example:                       . load c:\FOXLIB\pcconv
  2555.                                . FOXLIB = "PCCONV"
  2556.                                . call pcconv with FOXLIB
  2557.                                . ?substr(FOXLIB,1,1) = "Y"
  2558.                                .T.
  2559.                                . rele modu pcconv
  2560.                                                                 
  2561.                                From this example, it is a PC Convertible.
  2562.  
  2563.  
  2564.  
  2565.  
  2566.  
  2567.  
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.  
  2579.  
  2580.  
  2581.  
  2582.  
  2583.  
  2584.  
  2585.  
  2586.  
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.                                         PS2M30
  2594.  
  2595.  
  2596. Syntax:                        PS2M30
  2597.  
  2598. Use:                           To determine if PS/2 Model 30.
  2599.  
  2600. Parameters:                    PS2M30
  2601.  
  2602. Returns:                       The first character in the sending parameter will
  2603.                                have a "Y" if PS/2 Model 30, a "N" if it is not a
  2604.                                PS/2 Model 30. If you did not pass the parameter
  2605.                                correctly (e.g. FOXLIB = "ZS2M30"), your sending
  2606.                                parameter will be unchanged.
  2607.  
  2608. Example:                       . load c:\FOXLIB\ps2m30
  2609.                                . FOXLIB = "PS2M30"
  2610.                                . call ps2m30 with FOXLIB
  2611.                                . ?substr(FOXLIB,1,1) = "Y"
  2612.                                .T.
  2613.                                . rele modu ps2m30
  2614.                                                                 
  2615.                                From this example, it is a PS/2 Model 30.
  2616.  
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.                                         PS2M50
  2648.  
  2649.  
  2650. Syntax:                        PS2M50
  2651.  
  2652. Use:                           To determine if PS/2 Model 50.
  2653.  
  2654. Parameters:                    PS2M50
  2655.  
  2656. Returns:                       The first character in the sending parameter will
  2657.                                have a "Y" if PS/2 Model 50, a "N" if it is not a
  2658.                                PS/2 Model 50. If you did not pass the parameter
  2659.                                correctly (e.g. FOXLIB = "ZS2M50"), your sending
  2660.                                parameter will be unchanged.
  2661.  
  2662. Example:                       . load c:\FOXLIB\ps2m50
  2663.                                . FOXLIB = "PS2M50"
  2664.                                . call ps2m50 with FOXLIB
  2665.                                . ?substr(FOXLIB,1,1) = "Y"
  2666.                                .T.
  2667.                                . rele modu ps2m50
  2668.                                                                 
  2669.                                From this example, it is a PS/2 Model 50.
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.                                         PS2M55
  2702.  
  2703.  
  2704. Syntax:                        PS2M55
  2705.  
  2706. Use:                           To determine if PS/2 Model 55 SX.
  2707.  
  2708. Parameters:                    PS2M55
  2709.  
  2710. Returns:                       The first character in the sending parameter will
  2711.                                have a "Y" if PS/2 Model 55, a "N" if it is not a
  2712.                                PS/2 Model 55. If you did not pass the parameter
  2713.                                correctly (e.g. FOXLIB = "ZS2M55"), your sending
  2714.                                parameter will be unchanged.
  2715.  
  2716. Example:                       . load c:\FOXLIB\ps2m55
  2717.                                . FOXLIB = "PS2M55"
  2718.                                . call ps2m55 with FOXLIB
  2719.                                . ?substr(FOXLIB,1,1) = "Y"
  2720.                                .T.
  2721.                                . rele modu ps2m55
  2722.                                                                 
  2723.                                From this example, it is a PS/2 Model 55 SX.
  2724.  
  2725.  
  2726.  
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.                                         PS2M60
  2756.  
  2757.  
  2758. Syntax:                        PS2M60
  2759.  
  2760. Use:                           To determine if PS/2 Model 60.
  2761.  
  2762. Parameters:                    PS2M60
  2763.  
  2764. Returns:                       The first character in the sending parameter will
  2765.                                have a "Y" if PS/2 Model 60, a "N" if it is not a
  2766.                                PS/2 Model 60. If you did not pass the parameter
  2767.                                correctly (e.g. FOXLIB = "ZS2M60"), your sending
  2768.                                parameter will be unchanged.
  2769.  
  2770. Example:                       . load c:\FOXLIB\ps2m60
  2771.                                . FOXLIB = "PS2M60"
  2772.                                . call ps2m60 with FOXLIB
  2773.                                . ?substr(FOXLIB,1,1) = "Y"
  2774.                                .T.
  2775.                                . rele modu ps2m60
  2776.                                                                 
  2777.                                From this example, it is a PS/2 Model 60.
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.                                         PS2M70
  2810.  
  2811.  
  2812. Syntax:                        PS2M70
  2813.  
  2814. Use:                           To determine if PS/2 Model 70.
  2815.  
  2816. Parameters:                    PS2M70
  2817.  
  2818. Returns:                       The first character in the sending parameter will
  2819.                                have a "Y" if PS/2 Model 70, a "N" if it is not a
  2820.                                PS/2 Model 70. If you did not pass the parameter
  2821.                                correctly (e.g. FOXLIB = "ZS2M70"), your sending
  2822.                                parameter will be unchanged.
  2823.  
  2824. Example:                       . load c:\FOXLIB\ps2m70
  2825.                                . FOXLIB = "PS2M70"
  2826.                                . call ps2m70 with FOXLIB
  2827.                                . ?substr(FOXLIB,1,1) = "Y"
  2828.                                .T.
  2829.                                . rele modu ps2m70
  2830.                                                                 
  2831.                                From this example, it is a PS/2 Model 70.
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.  
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852.  
  2853.  
  2854.  
  2855.  
  2856.  
  2857.  
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.                                         PS2M80
  2864.  
  2865.  
  2866. Syntax:                        PS2M80
  2867.  
  2868. Use:                           To determine if PS/2 Model 80.
  2869.  
  2870. Parameters:                    PS2M80
  2871.  
  2872. Returns:                       The first character in the sending parameter will
  2873.                                have a "Y" if PS/2 Model 80, a "N" if it is not a
  2874.                                PS/2 Model 80. If you did not pass the parameter
  2875.                                correctly (e.g. FOXLIB = "ZS2M80"), your sending
  2876.                                parameter will be unchanged.
  2877.  
  2878. Example:                       . load c:\FOXLIB\ps2m80
  2879.                                . FOXLIB = "PS2M80"
  2880.                                . call ps2m80 with FOXLIB
  2881.                                . ?substr(FOXLIB,1,1) = "Y"
  2882.                                .T.
  2883.                                . rele modu ps2m80
  2884.                                                                 
  2885.                                From this example, it is a PS/2 Model 80.
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.                                         PARALLEL
  2918.  
  2919.  
  2920. Syntax:                        PARALLEL
  2921.  
  2922. Use:                           To determine if a parallel port exists.
  2923.  
  2924. Parameters:                    PARALLEL
  2925.  
  2926. Returns:                       The first character in the sending parameter will
  2927.                                have a "Y" if a parallel port exists, and a "N" if
  2928.                                a parallel port does not exist.  If you did not
  2929.                                pass the parameter correctly (e.g. FOXLIB =
  2930.                                "ZARALLEL"), your sending parameter will be
  2931.                                unchanged.
  2932.  
  2933. Example:                       . load c:\FOXLIB\parallel
  2934.                                . FOXLIB = "PARALLEL"
  2935.                                . call parallel with FOXLIB
  2936.                                . ?substr(FOXLIB,1,1) = "Y"
  2937.                                .T.
  2938.                                . rele modu parallel
  2939.                                                                 
  2940.                                From this example, a parallel port does exist.
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957.  
  2958.  
  2959.  
  2960.  
  2961.  
  2962.  
  2963.  
  2964.  
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.                                         REALTIME
  2972.  
  2973.  
  2974. Syntax:                        REALTIME
  2975.  
  2976. Use:                           To determine if a real-time clock is present.
  2977.  
  2978. Parameters:                    REALTIME
  2979.  
  2980. Returns:                       The first character in the sending parameter will
  2981.                                have a "Y" if a real-time clock is present, a "N" 
  2982.                                if it is not present. If you did not pass the     
  2983.                                parameter correctly (e.g. FOXLIB = "ZEALTIME"), your 
  2984.                                sending parameter will be unchanged.
  2985.  
  2986. Example:                       . load c:\FOXLIB\realtime
  2987.                                . FOXLIB = "REALTIME"
  2988.                                . call realtime with FOXLIB
  2989.                                . ?substr(FOXLIB,1,1) = "Y"
  2990.                                .T.
  2991.                                . rele modu realtime
  2992.                                
  2993.                                From this example, a real-time clock is present.
  2994.  
  2995. Notes:                         This command will not work on the PC/AT dated before
  2996.                                6/10/85.
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018.  
  3019.  
  3020.  
  3021.  
  3022.  
  3023.  
  3024.  
  3025.                                         SCRNSIZE
  3026.  
  3027.  
  3028. Syntax:                        SCRNSIZE
  3029.  
  3030. Use:                           To determine the mode (width in characters) on the
  3031.                                computer screen (possible outcomes are 40 or 80).
  3032.  
  3033. Parameters:                    SCRNSIZE
  3034.  
  3035. Returns:                       The first character in the sending parameter will
  3036.                                have the width of characters.  If you did not pass
  3037.                                the parameter correctly (e.g. FOXLIB =
  3038.                                "ZCRNSIZE"), your sending parameter will be
  3039.                                unchanged.
  3040.  
  3041. Example:                       . load c:\FOXLIB\scrnsize
  3042.                                . FOXLIB = "SCRNSIZE"
  3043.                                . call scrnsize with FOXLIB
  3044.                                . ?asc(substr(FOXLIB,1,1))
  3045.                                80
  3046.                                . rele modu scrnsize
  3047.                                                                 
  3048.                                From this example, the screen width is 80
  3049.                                characters.
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.  
  3070.  
  3071.  
  3072.  
  3073.  
  3074.  
  3075.  
  3076.  
  3077.  
  3078.  
  3079.                                         SERIAL
  3080.  
  3081.  
  3082. Syntax:                        SERIAL
  3083.  
  3084. Use:                           To determine if a serial port exists.
  3085.  
  3086. Parameters:                    SERIAL
  3087.  
  3088. Returns:                       The first character in the sending parameter will
  3089.                                have a "Y" if a serial port exists, and a "N" if a
  3090.                                serial port does not exist.  If you did not pass the
  3091.                                parameter correctly (e.g. FOXLIB = "ZERIAL"), your
  3092.                                sending parameter will be unchanged.
  3093.  
  3094. Example:                       . load c:\FOXLIB\serial
  3095.                                . FOXLIB = "SERIAL"
  3096.                                . call serial with FOXLIB
  3097.                                . ?substr(FOXLIB,1,1) = "Y"
  3098.                                .T.
  3099.                                . rele modu serial
  3100.                                                                 
  3101.                                From this example, a serial port exists.
  3102.  
  3103.  
  3104.  
  3105.  
  3106.  
  3107.  
  3108.  
  3109.  
  3110.  
  3111.  
  3112.  
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120.  
  3121.  
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.  
  3128.  
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.  
  3135.  
  3136.  
  3137.  
  3138.  
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.                                      KEYBOARD COMMANDS
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.                                         CAPSSTAT
  3188.  
  3189.  
  3190. Syntax:                        CAPSSTAT
  3191.  
  3192. Use:                           To determine if the Caps Lock key is on.
  3193.  
  3194. Parameters:                    CAPS
  3195.  
  3196. Returns:                       The first character in the sending parameter will
  3197.                                have a "Y" if the Caps Lock key is on, a "N" if it
  3198.                                is off.  If you did not pass the parameter correctly
  3199.                                (e.g. FOXLIB = "ZAPS"), your sending parameter
  3200.                                will be unchanged.
  3201.  
  3202. Example:                       . load c:\FOXLIB\capsstat
  3203.                                . FOXLIB = "CAPS"
  3204.                                . call capsstat with FOXLIB
  3205.                                . ?substr(FOXLIB,1,1) = "Y"
  3206.                                .T.
  3207.                                . rele modu capsstat
  3208.  
  3209.                                From this example, the Caps Lock key is on.
  3210.  
  3211. Notes:                         Make sure you re-load capsstat into memory each time
  3212.                                you determine if the Caps Lock key is on or off.
  3213.  
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219.  
  3220.  
  3221.  
  3222.  
  3223.  
  3224.  
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.                                         INSSTAT
  3242.  
  3243.  
  3244. Syntax:                        INSSTAT
  3245.  
  3246. Use:                           To determine if the Insert key is on.
  3247.  
  3248. Parameters:                    INS
  3249.  
  3250. Returns:                       The first character in the sending parameter will
  3251.                                have a "Y" if the Insert key is on, a "N" if it is
  3252.                                off.  If you did not pass the parameter correctly
  3253.                                (e.g. FOXLIB = "ZNS"), your sending parameter will
  3254.                                be unchanged.
  3255.  
  3256. Example:                       . load c:\FOXLIB\insstat
  3257.                                . FOXLIB = "INS"
  3258.                                . call insstat with FOXLIB
  3259.                                . ?substr(FOXLIB,1,1) = "Y"
  3260.                                .T.
  3261.                                . rele modu insstat
  3262.                                
  3263.                                From this example, the Insert key is on.
  3264.  
  3265. Notes:                         Make sure you re-load insstat into memory each time
  3266.                                you determine if the Insert Lock key is on or off.
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.                                         LEFTSHFT
  3296.  
  3297.  
  3298. Syntax:                        LEFTSHFT
  3299.  
  3300. Use:                           To determine if the Left Shift key is down.
  3301.  
  3302. Parameters:                    LEFT
  3303.  
  3304. Returns:                       The first character in the sending parameter will
  3305.                                have a "Y" if the Left Shift key is down, a "N" if
  3306.                                it is not down.  If you did not pass the parameter
  3307.                                correctly (e.g. FOXLIB = "ZEFT"), your sending
  3308.                                parameter will be unchanged.
  3309.  
  3310. Example:                       . load c:\FOXLIB\leftshft
  3311.                                . FOXLIB = "LEFT"
  3312.                                . call leftshft with FOXLIB
  3313.                                . ?substr(FOXLIB,1,1) = "Y"
  3314.                                .T.
  3315.                                . rele modu leftshft
  3316.                                
  3317.                                From this example, the Left Shift key is down.
  3318.  
  3319. Notes:                         Make sure you re-load leftshft into memory each time
  3320.                                you determine if the Left Shift key is down.
  3321.  
  3322.  
  3323.  
  3324.  
  3325.  
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.                                         NUMSTAT
  3350.  
  3351.  
  3352. Syntax:                        NUMSTAT
  3353.  
  3354. Use:                           To determine if the Num Lock key is on.
  3355.  
  3356. Parameters:                    NUM
  3357.  
  3358. Returns:                       The first character in the sending parameter will
  3359.                                have a "Y" if the Num Lock key is on, a "N" if it 
  3360.                                is off.  If you did not pass the parameter correctly
  3361.                                (e.g. FOXLIB = "ZUM"), your sending parameter will
  3362.                                be unchanged.
  3363.  
  3364. Example:                       . load c:\FOXLIB\numstat
  3365.                                . FOXLIB = "NUM"
  3366.                                . call numstat with FOXLIB
  3367.                                . ?substr(FOXLIB,1,1) = "Y"
  3368.                                .T.
  3369.                                . rele modu numstat
  3370.                                
  3371.                                From this example, the Num Lock key is on.
  3372.  
  3373. Notes:                         Make sure you re-load numstat into memory each time
  3374.                                you determine if the Num Lock key is on or off.
  3375.  
  3376.  
  3377.  
  3378.  
  3379.  
  3380.  
  3381.  
  3382.  
  3383.  
  3384.  
  3385.  
  3386.  
  3387.  
  3388.  
  3389.  
  3390.  
  3391.  
  3392.  
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.                                         RGHTSHFT
  3404.  
  3405.  
  3406. Syntax:                        RGHTSHFT
  3407.  
  3408. Use:                           To determine if the Left Shift key is down.
  3409.  
  3410. Parameters:                    RIGHT
  3411.  
  3412. Returns:                       The first character in the sending parameter will
  3413.                                have a "Y" if the Right Shift key is down, a "N" if
  3414.                                it is not down.  If you did not pass the parameter
  3415.                                correctly (e.g. FOXLIB = "ZIGHT"), your sending
  3416.                                parameter will be unchanged.
  3417.  
  3418. Example:                       . load c:\FOXLIB\rghtshft
  3419.                                . FOXLIB = "RIGHT"
  3420.                                . call rghtshft with FOXLIB
  3421.                                . ?substr(FOXLIB,1,1) = "Y"
  3422.                                .T.
  3423.                                . rele modu rghtshft
  3424.                                
  3425.                                From this example, the Right Shift key is down.
  3426.  
  3427. Notes:                         Make sure you re-load rghtshft into memory each time
  3428.                                you determine if the Right Shift key is down.
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.                                         SCRLSTAT
  3458.  
  3459.  
  3460. Syntax:                        SCRLSTAT
  3461.  
  3462. Use:                           To determine if the Scroll Lock key is on.
  3463.  
  3464. Parameters:                    SCRL
  3465.  
  3466. Returns:                       The first character in the sending parameter will
  3467.                                have a "Y" if the Scroll Lock key is on, a "N" if 
  3468.                                it is off.  If you did not pass the parameter     
  3469.                                correctly (e.g. FOXLIB = "ZCRL"), your sending    
  3470.                                parameter will be unchanged.
  3471.  
  3472. Example:                       . load c:\FOXLIB\scrlstat
  3473.                                . FOXLIB = "SCRL"
  3474.                                . call scrlstat with FOXLIB
  3475.                                . ?substr(FOXLIB,1,1) = "Y"
  3476.                                .T.
  3477.                                . rele modu scrlstat
  3478.                                
  3479.                                From this example, the Scroll Lock key is on.
  3480.  
  3481. Notes:                         Make sure you re-load scrlstat into memory each time
  3482.                                you determine if the Scroll Lock key is on or off.
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509.  
  3510.  
  3511.                                         CAPSOFF
  3512.  
  3513.  
  3514. Syntax:                        CAPSOFF
  3515.  
  3516. Use:                           To set the Caps Lock key off.
  3517.  
  3518. Parameters:                    CAPS
  3519.  
  3520. Returns:                       Nothing is returned.  If you did not pass the
  3521.                                parameter correctly (e.g. sending = "ZAPS"), your
  3522.                                FOXLIB parameter will be unchanged.
  3523.  
  3524. Example:                       . load c:\FOXLIB\capsoff
  3525.                                . FOXLIB = "CAPS"
  3526.                                . call capsoff with FOXLIB
  3527.                                . rele modu capsoff
  3528.                                
  3529.                                From this example, the Caps Lock key is set off.
  3530.  
  3531. Notes:                         Make sure you re-load capsoff into memory each time
  3532.                                you set the Caps Lock key off.
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.                                         NUMOFF
  3566.  
  3567.  
  3568. Syntax:                        NUMOFF
  3569.  
  3570. Use:                           To set the Num Lock key off.
  3571.  
  3572. Parameters:                    NUM
  3573.  
  3574. Returns:                       Nothing is returned.  If you did not pass the
  3575.                                parameter correctly (e.g. FOXLIB = "ZUM"), your
  3576.                                FOXLIB parameter will be unchanged.
  3577.  
  3578. Example:                       . load c:\FOXLIB\numoff
  3579.                                . FOXLIB = "NUM"
  3580.                                . call numoff with FOXLIB
  3581.                                . rele modu numoff
  3582.                                
  3583.                                From this example, the Num Lock key is set off.
  3584.  
  3585. Notes:                         Make sure you re-load numoff into memory each time
  3586.                                you set the Num Lock key off.
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604.  
  3605.  
  3606.  
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.                                         SCRLOFF
  3620.  
  3621.  
  3622. Syntax:                        SCRLOFF
  3623.  
  3624. Use:                           To set the Scroll Lock key off.
  3625.  
  3626. Parameters:                    SCRL
  3627.  
  3628. Returns:                       Nothing is returned.  If you did not pass the
  3629.                                parameter correctly (e.g. FOXLIB = "ZCRL"), your
  3630.                                sending parameter will be unchanged.
  3631.  
  3632. Example:                       . load c:\FOXLIB\scrloff
  3633.                                . FOXLIB = "SCRL"
  3634.                                . call scrloff with FOXLIB
  3635.                                . rele modu scrloff
  3636.                      
  3637.                                From this example, the Scroll Lock key is set off.
  3638.  
  3639. Notes:                         Make sure you re-load scrloff into memory each time
  3640.                                you set the Scroll Lock key off.
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.  
  3650.  
  3651.  
  3652.  
  3653.  
  3654.  
  3655.  
  3656.  
  3657.  
  3658.  
  3659.  
  3660.  
  3661.  
  3662.  
  3663.  
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.                                         CAPSON
  3674.  
  3675.  
  3676. Syntax:                        CAPSON
  3677.  
  3678. Use:                           To set the Caps Lock key on.
  3679.  
  3680. Parameters:                    CAPS
  3681.  
  3682. Returns:                       Nothing is returned.  If you did not pass the
  3683.                                parameter correctly (e.g. FOXLIB = "ZAPS"), your
  3684.                                sending parameter will be unchanged.
  3685.  
  3686. Example:                       . load c:\FOXLIB\capson
  3687.                                . FOXLIB = "CAPS"
  3688.                                . call capson with FOXLIB
  3689.                                . rele modu capson
  3690.                                
  3691.                                From this example, the Caps Lock key is set on.
  3692.  
  3693. Notes:                         Make sure you re-load capson into memory each time
  3694.                                you set the Caps Lock key on.
  3695.  
  3696.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.  
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713.  
  3714.  
  3715.  
  3716.  
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.                                         NUMON
  3728.  
  3729.  
  3730. Syntax:                        NUMON
  3731.  
  3732. Use:                           To set the Num Lock key on.
  3733.  
  3734. Parameters:                    NUM
  3735.  
  3736. Returns:                       Nothing is returned.  If you did not pass the
  3737.                                parameter correctly (e.g. FOXLIB = "ZUM"), your
  3738.                                sending parameter will be unchanged.
  3739.  
  3740. Example:                       . load c:\FOXLIB\numon
  3741.                                . FOXLIB = "NUM"
  3742.                                . call numon with FOXLIB
  3743.                                . rele modu numon
  3744.                                
  3745.                                From this example, the Num Lock key is set on.
  3746.  
  3747. Notes:                         Make sure you re-load numon into memory each time
  3748.                                you set the Num Lock key on.
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755.  
  3756.  
  3757.  
  3758.  
  3759.  
  3760.  
  3761.  
  3762.  
  3763.  
  3764.  
  3765.  
  3766.  
  3767.  
  3768.  
  3769.  
  3770.  
  3771.  
  3772.  
  3773.  
  3774.  
  3775.  
  3776.  
  3777.  
  3778.  
  3779.  
  3780.  
  3781.                                         SCRLON
  3782.  
  3783.  
  3784. Syntax:                        SCRLON
  3785.  
  3786. Use:                           To set the Scroll Lock key on.
  3787.  
  3788. Parameters:                    SCRL
  3789.  
  3790. Returns:                       Nothing is returned.  If you did not pass the
  3791.                                parameter correctly (e.g. sending = "ZCRL"), your
  3792.                                sending parameter will be unchanged.
  3793.  
  3794. Example:                       . load c:\FOXLIB\scrlon
  3795.                                . FOXLIB = "SCRL"
  3796.                                . call scrlon with FOXLIB
  3797.                                . rele modu scrlon
  3798.                      
  3799.                                From this example, the Scroll Lock key is set on.
  3800.  
  3801. Notes:                         Make sure you re-load scrlon into memory each time
  3802.                                you set the Scroll Lock key on.
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.  
  3824.  
  3825.  
  3826.  
  3827.  
  3828.  
  3829.  
  3830.  
  3831.  
  3832.  
  3833.  
  3834.  
  3835.  
  3836.  
  3837.  
  3838.  
  3839.  
  3840.  
  3841.  
  3842.  
  3843.  
  3844.  
  3845.  
  3846.  
  3847.                                   COMMUNICATION COMMANDS
  3848.  
  3849.  
  3850.  
  3851.  
  3852.  
  3853.  
  3854.  
  3855.  
  3856.  
  3857.  
  3858.  
  3859.  
  3860.  
  3861.  
  3862.  
  3863.  
  3864.  
  3865.  
  3866.  
  3867.  
  3868.  
  3869.  
  3870.  
  3871.  
  3872.  
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.                                         COM300
  3890.  
  3891.  
  3892. Syntax:                        COM300
  3893.  
  3894. Use:                           To initialize the communications line at 300 baud.
  3895.  
  3896. Parameters:                    In order to initialize the communications line, the
  3897.                                baud rate, parity, stop bit, and data length
  3898.                                parameters have to be set.  Use the table below to
  3899.                                initialize the communications lines 1, 2, 3, and 4. 
  3900.  
  3901.                                If you wanted to initialize communications line 1 
  3902.                                at 300 baud, no parity, 1 stop bit, and 7 data    
  3903.                                length, you would choose the letter "A" from the  
  3904.                                table below and add a comma and the communications 
  3905.                                line to initialize - in this case the number 0.   
  3906.                                Remember, that communications line 1 is 0, line 2 
  3907.                                is 1, line 3 is 2, and line 4 is 3.  
  3908.  
  3909.                                300, no parity, 1 stop bit, 7 data length = A
  3910.                                300, no parity, 1 stop bit, 8 data length = B
  3911.                                300, no parity, 2 stop bit, 7 data length = C
  3912.                                300, no parity, 2 stop bit, 8 data length = D
  3913.                                300, odd parity, 1 stop bit, 7 data length = E
  3914.                                300, odd parity, 1 stop bit, 8 data length = F
  3915.                                300, odd parity, 2 stop bit, 7 data length = G
  3916.                                300, odd parity, 2 stop bit, 8 data length = H
  3917.                                300, even parity, 1 stop bit, 7 data length = I
  3918.                                300, even parity, 1 stop bit, 8 data length = J
  3919.                                300, even parity, 2 stop bit, 7 data length = K
  3920.                                300, even parity, 2 stop bit, 8 data length = L
  3921.  
  3922. Returns:                       Use the FOXLIB communications status commands
  3923.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  3924.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  3925.                                the communications line if the return value is not
  3926.                                equal to 1 or 97.  If the return value is not equal
  3927.                                to 1 or 97, load and call COM300 again to see if any
  3928.                                errors disappear.  If you did not pass the parameter
  3929.                                correctly (e.g. FOXLIB = "Z,0"), your sending
  3930.                                parameter will be unchanged.
  3931.  
  3932. Example:                       . load c:\FOXLIB\com300
  3933.                                . FOXLIB = "A,0"
  3934.                                . call com300 with FOXLIB
  3935.                                . ?substr(FOXLIB,1,1) = "A"
  3936.                                .F.
  3937.                                . ?asc(substr(FOXLIB,1,1)) = 97
  3938.                                .T.
  3939.                                . rele modu com300
  3940.                                
  3941. First test to see if you passed the parameter correctly.  From this example, the
  3942. parameter was passed correctly since the first character is not equal to "A".  
  3943.                                         COM1200
  3944.  
  3945.  
  3946. Syntax:                        COM1200
  3947.  
  3948. Use:                           To initialize the communications line at 1200 baud.
  3949.  
  3950. Parameters:                    In order to initialize the communications line, the
  3951.                                baud rate, parity, stop bit, and data length
  3952.                                parameters have to be set.  Use the table below to
  3953.                                initialize the communications lines 1, 2, 3, and 4. 
  3954.  
  3955.                                If you wanted to initialize communications line 1 
  3956.                                at 1200 baud, no parity, 1 stop bit, and 7 data   
  3957.                                length, you would choose the letter "A" from the  
  3958.                                table below and add a comma and the communications 
  3959.                                line to initialize - in this case the number 0.   
  3960.                                Remember, that communications line 1 is 0, line 2 
  3961.                                is 1, line 3 is 2, and line 4 is 3.  
  3962.  
  3963.                                1200, no parity, 1 stop bit, 7 data length = A
  3964.                                1200, no parity, 1 stop bit, 8 data length = B
  3965.                                1200, no parity, 2 stop bit, 7 data length = C
  3966.                                1200, no parity, 2 stop bit, 8 data length = D
  3967.                                1200, odd parity, 1 stop bit, 7 data length = E
  3968.                                1200, odd parity, 1 stop bit, 8 data length = F
  3969.                                1200, odd parity, 2 stop bit, 7 data length = G
  3970.                                1200, odd parity, 2 stop bit, 8 data length = H
  3971.                                1200, even parity, 1 stop bit, 7 data length = I
  3972.                                1200, even parity, 1 stop bit, 8 data length = J
  3973.                                1200, even parity, 2 stop bit, 7 data length = K
  3974.                                1200, even parity, 2 stop bit, 8 data length = L
  3975.  
  3976. Returns:                       Use the FOXLIB communications status commands
  3977.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  3978.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  3979.                                the communications line if the return value is not
  3980.                                equal to 1 or 97.  If the return value is not equal
  3981.                                to 1 or 97, load and call COM1200 again to see if
  3982.                                any errors disappear.  If you did not pass the
  3983.                                parameter correctly (e.g. FOXLIB = "Z,0"), your
  3984.                                sending parameter will be unchanged.
  3985.  
  3986. Example:                       . load c:\FOXLIB\com1200
  3987.                                . FOXLIB = "1,0"
  3988.                                . call com1200 with FOXLIB
  3989.                                . ?substr(FOXLIB,1,1) = "A"
  3990.                                .F.
  3991.                                . ?asc(substr(FOXLIB,1,1)) = 97
  3992.                                .T.
  3993.                                . rele modu com1200
  3994.                                
  3995. First test to see if you passed the parameter correctly.  From this example, the
  3996. parameter was passed correctly since the first character is not equal to "A".  
  3997.                                         COM2400
  3998.  
  3999.  
  4000. Syntax:                        COM2400
  4001.  
  4002. Use:                           To initialize the communications line at 2400 baud.
  4003.  
  4004. Parameters:                    In order to initialize the communications line, the
  4005.                                baud rate, parity, stop bit, and data length
  4006.                                parameters have to be set.  Use the table below to
  4007.                                initialize the communications lines 1, 2, 3, and 4. 
  4008.  
  4009.                                If you wanted to initialize communications line 1 
  4010.                                at 2400 baud, no parity, 1 stop bit, and 7 data   
  4011.                                length, you would choose the letter "A" from the  
  4012.                                table below and add a comma and the communications 
  4013.                                line to initialize - in this case the number 0.   
  4014.                                Remember, that communications line 1 is 0, line 2 
  4015.                                is 1, line 3 is 2, and line 4 is 3.  
  4016.  
  4017.                                2400, no parity, 1 stop bit, 7 data length = A
  4018.                                2400, no parity, 1 stop bit, 8 data length = B
  4019.                                2400, no parity, 2 stop bit, 7 data length = C
  4020.                                2400, no parity, 2 stop bit, 8 data length = D
  4021.                                2400, odd parity, 1 stop bit, 7 data length = E
  4022.                                2400, odd parity, 1 stop bit, 8 data length = F
  4023.                                2400, odd parity, 2 stop bit, 7 data length = G
  4024.                                2400, odd parity, 2 stop bit, 8 data length = H
  4025.                                2400, even parity, 1 stop bit, 7 data length = I
  4026.                                2400, even parity, 1 stop bit, 8 data length = J
  4027.                                2400, even parity, 2 stop bit, 7 data length = K
  4028.                                2400, even parity, 2 stop bit, 8 data length = L
  4029.  
  4030. Returns:                       Use the FOXLIB communications status commands
  4031.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  4032.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  4033.                                the communications line if the return value is not
  4034.                                equal to 1 or 97.  If the return value is not equal
  4035.                                to 1 or 97, load and call COM2400 again to see if
  4036.                                any errors disappear.  If you did not pass the
  4037.                                parameter correctly (e.g. FOXLIB = "Z,0"), your
  4038.                                sending parameter will be unchanged.
  4039.  
  4040. Example:                       . load c:\FOXLIB\com2400
  4041.                                . FOXLIB = "A,0"
  4042.                                . call com2400 with FOXLIB
  4043.                                . ?substr(FOXLIB,1,1) = "A"
  4044.                                .F.
  4045.                                . ?asc(substr(FOXLIB,1,1)) = 97
  4046.                                .T.
  4047.                                . rele modu com2400
  4048.                                
  4049. First test to see if you passed the parameter correctly.  From this example, the
  4050. parameter was passed correctly since the first character is not equal to "A".  
  4051.                                         COM4800
  4052.  
  4053.  
  4054. Syntax:                        COM4800
  4055.  
  4056. Use:                           To initialize the communications line at 4800 baud.
  4057.  
  4058. Parameters:                    In order to initialize the communications line, the
  4059.                                baud rate, parity, stop bit, and data length
  4060.                                parameters have to be set.  Use the table below to
  4061.                                initialize the communications lines 1, 2, 3, and 4. 
  4062.  
  4063.                                If you wanted to initialize communications line 1 
  4064.                                at 4800 baud, no parity, 1 stop bit, and 7 data   
  4065.                                length, you would choose the letter "A" from the  
  4066.                                table below and add a comma and the communications 
  4067.                                line to initialize - in this case the number 0.   
  4068.                                Remember, that communications line 1 is 0, line 2 
  4069.                                is 1, line 3 is 2, and line 4 is 3.  
  4070.  
  4071.                                4800, no parity, 1 stop bit, 7 data length = A
  4072.                                4800, no parity, 1 stop bit, 8 data length = B
  4073.                                4800, no parity, 2 stop bit, 7 data length = C
  4074.                                4800, no parity, 2 stop bit, 8 data length = D
  4075.                                4800, odd parity, 1 stop bit, 7 data length = E
  4076.                                4800, odd parity, 1 stop bit, 8 data length = F
  4077.                                4800, odd parity, 2 stop bit, 7 data length = G
  4078.                                4800, odd parity, 2 stop bit, 8 data length = H
  4079.                                4800, even parity, 1 stop bit, 7 data length = I
  4080.                                4800, even parity, 1 stop bit, 8 data length = J
  4081.                                4800, even parity, 2 stop bit, 7 data length = K
  4082.                                4800, even parity, 2 stop bit, 8 data length = L
  4083.  
  4084. Returns:                       Use the FOXLIB communications status commands
  4085.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  4086.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  4087.                                the communications line if the return value is not
  4088.                                equal to 1 or 97.  If the return value is not equal
  4089.                                to 1 or 97, load and call COM4800 again to see if
  4090.                                any errors disappear.  If you did not pass the
  4091.                                parameter correctly (e.g. FOXLIB = "Z,0"), your
  4092.                                sending parameter will be unchanged.
  4093.  
  4094. Example:                       . load c:\FOXLIB\com4800
  4095.                                . FOXLIB = "A,0"
  4096.                                . call com4800 with FOXLIB
  4097.                                . ?substr(FOXLIB,1,1) = "A"
  4098.                                .F.
  4099.                                . ?asc(substr(FOXLIB,1,1)) = 97
  4100.                                .T.
  4101.                                . rele modu com4800
  4102.                                
  4103. First test to see if you passed the parameter correctly.  From this example, the
  4104. parameter was passed correctly since the first character is not equal to "A".  
  4105.                                         COM9600
  4106.  
  4107.  
  4108. Syntax:                        COM9600
  4109.  
  4110. Use:                           To initialize the communications line at 9600 baud.
  4111.  
  4112. Parameters:                    In order to initialize the communications line, the
  4113.                                baud rate, parity, stop bit, and data length
  4114.                                parameters have to be set.  Use the table below to
  4115.                                initialize the communications lines 1, 2, 3, and 4. 
  4116.  
  4117.                                If you wanted to initialize communications line 1 
  4118.                                at 9600 baud, no parity, 1 stop bit, and 7 data   
  4119.                                length, you would choose the letter "A" from the  
  4120.                                table below and add a comma and the communications 
  4121.                                line to initialize - in this case the number 0.   
  4122.                                Remember, that communications line 1 is 0, line 2 
  4123.                                is 1, line 3 is 2, and line 4 is 3.  
  4124.  
  4125.                                9600, no parity, 1 stop bit, 7 data length = A
  4126.                                9600, no parity, 1 stop bit, 8 data length = B
  4127.                                9600, no parity, 2 stop bit, 7 data length = C
  4128.                                9600, no parity, 2 stop bit, 8 data length = D
  4129.                                9600, odd parity, 1 stop bit, 7 data length = E
  4130.                                9600, odd parity, 1 stop bit, 8 data length = F
  4131.                                9600, odd parity, 2 stop bit, 7 data length = G
  4132.                                9600, odd parity, 2 stop bit, 8 data length = H
  4133.                                9600, even parity, 1 stop bit, 7 data length = I
  4134.                                9600, even parity, 1 stop bit, 8 data length = J
  4135.                                9600, even parity, 2 stop bit, 7 data length = K
  4136.                                9600, even parity, 2 stop bit, 8 data length = L
  4137.  
  4138. Returns:                       Use the FOXLIB communications status commands
  4139.                                (i.e. COMSTAT, COMDR, COMOE, COMPE, COMFE, COMBID,
  4140.                                COMTHR, COMTSR, and COMTOE) to obtain the status of
  4141.                                the communications line if the return value is not
  4142.                                equal to 1 or 97.  If the return value is not equal
  4143.                                to 1 or 97, load and call COM9600 again to see if
  4144.                                any errors disappear.  If you did not pass the
  4145.                                parameter correctly (e.g. FOXLIB = "Z,0"), your
  4146.                                sending parameter will be unchanged.
  4147.  
  4148. Example:                       . load c:\FOXLIB\com9600
  4149.                                . FOXLIB = "A,0"
  4150.                                . call com9600 with FOXLIB
  4151.                                . ?substr(FOXLIB,1,1) = "A"
  4152.                                .F.
  4153.                                . ?asc(substr(FOXLIB,1,1)) = 97
  4154.                                .T.
  4155.                                . rele modu com9600
  4156.                                
  4157. First test to see if you passed the parameter correctly.  From this example, the
  4158. parameter was passed correctly since the first character is not equal to "A".  
  4159.                                         COMSTAT
  4160.  
  4161.  
  4162. Syntax:                        COMSTAT
  4163.  
  4164. Use:                           To determine if a communications line is data
  4165.                                ready.
  4166.  
  4167. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4168.                                COM3 for com4.
  4169.  
  4170. Returns:                       The first character in the sending parameter will
  4171.                                have the status of the communication line.  If you
  4172.                                did not pass the parameter correctly (e.g. FOXLIB
  4173.                                = "ZOM0"), your sending parameter will be unchanged.
  4174.  
  4175. Example:                       . load c:\FOXLIB\comstat
  4176.                                . FOXLIB = "COM0"
  4177.                                . call comstat with FOXLIB
  4178.                                . ?asc(substr(FOXLIB,1,1)) = 97
  4179.                                .T.
  4180.                                . rele modu comstat
  4181.  
  4182.                                From this example, the status of communication port
  4183.                                1 is: data ready, transfer holding register empty,
  4184.                                and transfer shift register empty.  If the return
  4185.                                value is not equal to 1 or 97, load and call COMSTAT
  4186.                                again to see if any errors disappear.  If you did
  4187.                                not receive a value of 1 or 97, then an error
  4188.                                occurred, and the communications port may not ready
  4189.                                to properly receive data.
  4190.  
  4191.  
  4192.  
  4193.  
  4194.  
  4195.  
  4196.  
  4197.  
  4198.  
  4199.  
  4200.  
  4201.  
  4202.  
  4203.  
  4204.  
  4205.  
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212.  
  4213.                                         COMDR
  4214.  
  4215.  
  4216. Syntax:                        COMDR
  4217.  
  4218. Use:                           To determine the status of data ready.
  4219.  
  4220. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4221.                                COM3 for com4.
  4222.  
  4223. Returns:                       The first character in the sending parameter will
  4224.                                have a "Y" if data ready is turned on, a "N" if data
  4225.                                ready is turned off. If you did not pass the
  4226.                                parameter correctly (e.g. FOXLIB = "ZOM0"), your
  4227.                                sending parameter will be unchanged.
  4228.  
  4229. Example:                       . load c:\FOXLIB\comdr
  4230.                                . FOXLIB = "COM0"
  4231.                                . call comdr with FOXLIB
  4232.                                . ?substr(FOXLIB,1,1) = "Y"
  4233.                                .T.
  4234.                                . rele modu comdr
  4235.  
  4236.                                From this example, data ready is turned on. 
  4237.  
  4238.  
  4239.  
  4240.  
  4241.  
  4242.  
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248.  
  4249.  
  4250.  
  4251.  
  4252.  
  4253.  
  4254.  
  4255.  
  4256.  
  4257.  
  4258.  
  4259.  
  4260.  
  4261.  
  4262.  
  4263.  
  4264.  
  4265.  
  4266.  
  4267.                                         COMOE
  4268.  
  4269.  
  4270. Syntax:                        COMOE
  4271.  
  4272. Use:                           To determine the status of overrun error.
  4273.  
  4274. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4275.                                COM3 for com4.
  4276.  
  4277. Returns:                       The first character in the sending parameter will
  4278.                                have a "Y" if overrun error is turned on, a "N" if
  4279.                                overrun error is turned off. If you did not pass the
  4280.                                parameter correctly (e.g. FOXLIB = "ZOM0"), your
  4281.                                sending parameter will be unchanged.
  4282.  
  4283. Example:                       . load c:\FOXLIB\comoe
  4284.                                . FOXLIB = "COM0"
  4285.                                . call comoe with FOXLIB
  4286.                                . ?substr(FOXLIB,1,1) = "Y"
  4287.                                .T.
  4288.                                . rele modu comoe
  4289.  
  4290.                                From this example, overrun error is turned on. 
  4291.  
  4292.  
  4293.  
  4294.  
  4295.  
  4296.  
  4297.  
  4298.  
  4299.  
  4300.  
  4301.  
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307.  
  4308.  
  4309.  
  4310.  
  4311.  
  4312.  
  4313.  
  4314.  
  4315.  
  4316.  
  4317.  
  4318.  
  4319.  
  4320.  
  4321.                                         COMPE
  4322.  
  4323.  
  4324. Syntax:                        COMPE
  4325.  
  4326. Use:                           To determine the status of parity error.
  4327.  
  4328. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4329.                                COM3 for com4.
  4330.  
  4331. Returns:                       The first character in the sending parameter will
  4332.                                have a "Y" if parity error is turned on, a "N" if
  4333.                                parity error is turned off. If you did not pass the
  4334.                                parameter correctly (e.g. FOXLIB = "ZOM0"), your
  4335.                                sending parameter will be unchanged.
  4336.  
  4337. Example:                       . load c:\FOXLIB\compe
  4338.                                . FOXLIB = "COM0"
  4339.                                . call compe with FOXLIB
  4340.                                . ?substr(FOXLIB,1,1) = "Y"
  4341.                                .T.
  4342.                                . rele modu compe
  4343.  
  4344.                                From this example, parity error is turned on. 
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.  
  4353.  
  4354.  
  4355.  
  4356.  
  4357.  
  4358.  
  4359.  
  4360.  
  4361.  
  4362.  
  4363.  
  4364.  
  4365.  
  4366.  
  4367.  
  4368.  
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375.                                         COMFE
  4376.  
  4377.  
  4378. Syntax:                        COMFE
  4379.  
  4380. Use:                           To determine the status of framing error.
  4381.  
  4382. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4383.                                COM3 for com4.
  4384.  
  4385. Returns:                       The first character in the sending parameter will
  4386.                                have a "Y" if framing error is turned on, a "N" if
  4387.                                framing error is turned off. If you did not pass the
  4388.                                parameter correctly (e.g. FOXLIB = "ZOM0"), your
  4389.                                sending parameter will be unchanged.
  4390.  
  4391. Example:                       . load c:\FOXLIB\comfe
  4392.                                . FOXLIB = "COM0"
  4393.                                . call comfe with FOXLIB
  4394.                                . ?substr(FOXLIB,1,1) = "Y"
  4395.                                .T.
  4396.                                . rele modu comfe
  4397.  
  4398.                                From this example, framing error is turned on. 
  4399.  
  4400.  
  4401.  
  4402.  
  4403.  
  4404.  
  4405.  
  4406.  
  4407.  
  4408.  
  4409.  
  4410.  
  4411.  
  4412.  
  4413.  
  4414.  
  4415.  
  4416.  
  4417.  
  4418.  
  4419.  
  4420.  
  4421.  
  4422.  
  4423.  
  4424.  
  4425.  
  4426.  
  4427.  
  4428.  
  4429.                                         COMBID
  4430.  
  4431.  
  4432. Syntax:                        COMBID
  4433.  
  4434. Use:                           To determine the status of break interrupt detected.
  4435.  
  4436. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4437.                                COM3 for com4.
  4438.  
  4439. Returns:                       The first character in the sending parameter will
  4440.                                have a "Y" if break interrupt detected is turned on,
  4441.                                a "N" if break interrupt detected is turned off. If
  4442.                                you did not pass the parameter correctly (e.g.
  4443.                                FOXLIB = "ZOM0"), your sending parameter will
  4444.                                be unchanged.
  4445.  
  4446. Example:                       . load c:\FOXLIB\combid
  4447.                                . FOXLIB = "COM0"
  4448.                                . call combid with FOXLIB
  4449.                                . ?substr(FOXLIB,1,1) = "Y"
  4450.                                .T.
  4451.                                . rele modu combid
  4452.  
  4453.                                From this example, break interrupt detected is
  4454.                                turned on. 
  4455.  
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.  
  4462.  
  4463.  
  4464.  
  4465.  
  4466.  
  4467.  
  4468.  
  4469.  
  4470.  
  4471.  
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478.  
  4479.  
  4480.  
  4481.  
  4482.  
  4483.                                         COMTHR
  4484.  
  4485.  
  4486. Syntax:                        COMTHR
  4487.  
  4488. Use:                           To determine the status of transfer holding register
  4489.                                empty.
  4490.  
  4491. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4492.                                COM3 for com4.
  4493.  
  4494. Returns:                       The first character in the sending parameter will
  4495.                                have a "Y" if transfer holding register empty is
  4496.                                turned on, a "N" if transfer holding register empty
  4497.                                is turned off. If you did not pass the parameter
  4498.                                correctly (e.g. FOXLIB = "ZOM0"), your sending
  4499.                                parameter will be unchanged.
  4500.  
  4501. Example:                       . load c:\FOXLIB\comthr
  4502.                                . FOXLIB = "COM0"
  4503.                                . call comthr with FOXLIB
  4504.                                . ?substr(FOXLIB,1,1) = "Y"
  4505.                                .T.
  4506.                                . rele modu comthr
  4507.  
  4508.                                From this example, transfer holding register empty
  4509.                                is turned on. 
  4510.  
  4511.  
  4512.  
  4513.  
  4514.  
  4515.  
  4516.  
  4517.  
  4518.  
  4519.  
  4520.  
  4521.  
  4522.  
  4523.  
  4524.  
  4525.  
  4526.  
  4527.  
  4528.  
  4529.  
  4530.  
  4531.  
  4532.  
  4533.  
  4534.  
  4535.  
  4536.  
  4537.                                         COMTSR
  4538.  
  4539.  
  4540. Syntax:                        COMTSR
  4541.  
  4542. Use:                           To determine the status of transfer shift register
  4543.                                empty.                          
  4544.  
  4545. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4546.                                COM3 for com4.
  4547.  
  4548. Returns:                       The first character in the sending parameter will
  4549.                                have a "Y" if transfer shift register empty is
  4550.                                turned on, a "N" if transfer shift register empty 
  4551.                                is turned off. If you did not pass the parameter
  4552.                                correctly (e.g. FOXLIB = "ZOM0"), your sending
  4553.                                parameter will be unchanged.
  4554.  
  4555. Example:                       . load c:\FOXLIB\comtsr
  4556.                                . FOXLIB = "COM0"
  4557.                                . call comtsr with FOXLIB
  4558.                                . ?substr(FOXLIB,1,1) = "Y"
  4559.                                .T.
  4560.                                . rele modu comtsr
  4561.  
  4562.                                From this example, transfer shift register empty
  4563.                                is turned on. 
  4564.  
  4565.  
  4566.  
  4567.  
  4568.  
  4569.  
  4570.  
  4571.  
  4572.  
  4573.  
  4574.  
  4575.  
  4576.  
  4577.  
  4578.  
  4579.  
  4580.  
  4581.  
  4582.  
  4583.  
  4584.  
  4585.  
  4586.  
  4587.  
  4588.  
  4589.  
  4590.  
  4591.                                         COMTOE
  4592.  
  4593.  
  4594. Syntax:                        COMTOE
  4595.  
  4596. Use:                           To determine the status of time-out error.
  4597.  
  4598. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4599.                                COM3 for com4.
  4600.  
  4601. Returns:                       The first character in the sending parameter will
  4602.                                have a "Y" if time-out error is turned on, a "N" if
  4603.                                time-out error is turned off. If you did not pass
  4604.                                the parameter correctly (e.g. FOXLIB = "ZOM0"),
  4605.                                your sending parameter will be unchanged.
  4606.  
  4607. Example:                       . load c:\FOXLIB\comtoe
  4608.                                . FOXLIB = "COM0"
  4609.                                . call comtoe with FOXLIB
  4610.                                . ?substr(FOXLIB,1,1) = "Y"
  4611.                                .T.
  4612.                                . rele modu comtoe
  4613.  
  4614.                                From this example, time-out error is turned on. 
  4615.  
  4616.  
  4617.  
  4618.  
  4619.  
  4620.  
  4621.  
  4622.  
  4623.  
  4624.  
  4625.  
  4626.  
  4627.  
  4628.  
  4629.  
  4630.  
  4631.  
  4632.  
  4633.  
  4634.  
  4635.  
  4636.  
  4637.  
  4638.  
  4639.  
  4640.  
  4641.  
  4642.  
  4643.  
  4644.  
  4645.                                         LPTINIT
  4646.  
  4647.  
  4648. Syntax:                        LPTINIT
  4649.  
  4650. Use:                           To initialize the line printer (LPT).
  4651.  
  4652. Parameters:                    LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.
  4653.  
  4654. Returns:                       The first character in the sending parameter will
  4655.                                have the status of the line printer.  If you did not
  4656.                                pass the parameter correctly (e.g. FOXLIB =
  4657.                                "ZPT0"), your sending parameter will be unchanged.
  4658.  
  4659. Example:                       . load c:\FOXLIB\lptinit
  4660.                                . FOXLIB = "LPT0"
  4661.                                . call lptinit with FOXLIB
  4662.                                . ?asc(substr(FOXLIB,1,1))
  4663.                                144
  4664.                                . rele modu lptinit
  4665.                                
  4666.                                From this example, the printer status for LPT1 after
  4667.                                initialization is ready to print.
  4668.  
  4669.                                Below is a table of possible outcomes:
  4670.  
  4671.                                0 = Initialization successful
  4672.                                8 = Offline
  4673.                                40 = Out of paper
  4674.                                72 = I/O error
  4675.                                144 = Printer ready
  4676.                                200 = Printer power off
  4677.  
  4678.                                The above values are only valid with IBM and EPSON
  4679.                                compatible printers.  If you have a different type
  4680.                                of printer, you may be able to determine the value
  4681.                                specific to your printer.  If you are using a non-
  4682.                                compatible printer, run LPTINIT under different
  4683.                                conditions (e.g. printer on, printer not turned on,
  4684.                                etc.).  The results you obtain may allow you to
  4685.                                build a table of outcomes for your particular
  4686.                                printer.  When you test LPTINIT using a non-
  4687.                                IBM/EPSON compatible printer, make sure all of your
  4688.                                FOX application files are closed.  Otherwise, you
  4689.                                may get unwanted results!
  4690.  
  4691.  
  4692.  
  4693.  
  4694.  
  4695.  
  4696.  
  4697.  
  4698.  
  4699.                                         LPTSTAT
  4700.  
  4701.  
  4702. Syntax:                        LPTSTAT
  4703.  
  4704. Use:                           To determine the status of the line printer (LPT).
  4705.  
  4706. Parameters:                    LPT0 for lpt1, LPT1 for lpt2, and LPT2 for lpt3.
  4707.  
  4708. Returns:                       The first character in the sending parameter will
  4709.                                have the status of the line printer.  If you did not
  4710.                                pass the parameter correctly (e.g. FOXLIB =
  4711.                                "ZPT0"), your sending parameter will be unchanged.
  4712.  
  4713. Example:                       . load c:\FOXLIB\lptstat
  4714.                                . FOXLIB = "LPT0"
  4715.                                . call lptstat with FOXLIB
  4716.                                . ?asc(substr(FOXLIB,1,1))
  4717.                                144
  4718.                                . rele modu lptstat
  4719.                                
  4720.                                From this example, the status of the LPT1 is printer
  4721.                                ready.
  4722.  
  4723.                                Below is a table of possible outcomes:
  4724.  
  4725.                                8 = Offline
  4726.                                40 = Out of paper
  4727.                                72 = I/O error
  4728.                                144 = Printer ready
  4729.                                200 = Printer power off
  4730.  
  4731.                                The above values are only valid with IBM and EPSON
  4732.                                compatible printers.  If you have a different type
  4733.                                of printer, you may be able to determine the value
  4734.                                specific to your printer.  If you are using a non-
  4735.                                compatible printer, run LPTSTAT under different
  4736.                                conditions (e.g. printer on, printer not turned on,
  4737.                                etc.).  The results you obtain may allow you to
  4738.                                build a table of outcomes for your particular
  4739.                                printer. When you test LPTINIT using a non-
  4740.                                IBM/EPSON compatible printer, make sure all of your
  4741.                                FOX application files are closed.  Otherwise, you
  4742.                                may get unwanted results!
  4743.  
  4744.  
  4745.  
  4746.  
  4747.  
  4748.  
  4749.  
  4750.  
  4751.  
  4752.  
  4753.                                         MODMDCTS
  4754.  
  4755.  
  4756. Syntax:                        MODMDCTS
  4757.  
  4758. Use:                           To determine the status of delta clear to send. 
  4759.  
  4760. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4761.                                COM3 for com4.
  4762.  
  4763. Returns:                       The first character in the sending parameter will
  4764.                                have a "Y" if delta clear to send is turned on, a
  4765.                                "N" if delta clear to send is turned off. If you did
  4766.                                not pass the parameter correctly (e.g. FOXLIB =
  4767.                                "ZOM0"), your sending parameter will be unchanged.
  4768.  
  4769. Example:                       . load c:\FOXLIB\modmdcts
  4770.                                . FOXLIB = "COM0"
  4771.                                . call modmdcts with FOXLIB
  4772.                                . ?substr(FOXLIB,1,1) = "Y"
  4773.                                .T.
  4774.                                . rele modu modmdcts
  4775.  
  4776.                                From this example, delta clear to send is turned on.
  4777.  
  4778.  
  4779.  
  4780.  
  4781.  
  4782.  
  4783.  
  4784.  
  4785.  
  4786.  
  4787.  
  4788.  
  4789.  
  4790.  
  4791.  
  4792.  
  4793.  
  4794.  
  4795.  
  4796.  
  4797.  
  4798.  
  4799.  
  4800.  
  4801.  
  4802.  
  4803.  
  4804.  
  4805.  
  4806.  
  4807.                                         MODMDDSR
  4808.  
  4809.  
  4810. Syntax:                        MODMDDSR
  4811.  
  4812. Use:                           To determine the status of delta data set ready. 
  4813.  
  4814. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4815.                                COM3 for com4.
  4816.  
  4817. Returns:                       The first character in the sending parameter will
  4818.                                have a "Y" if delta data set ready is turned on, a
  4819.                                "N" if delta data set ready is turned off. If you
  4820.                                did not pass the parameter correctly (e.g. FOXLIB
  4821.                                = "ZOM0"), your sending parameter will be unchanged.
  4822.  
  4823. Example:                       . load c:\FOXLIB\modmddsr
  4824.                                . FOXLIB = "COM0"
  4825.                                . call modmddsr with FOXLIB
  4826.                                . ?substr(FOXLIB,1,1) = "Y"
  4827.                                .T.
  4828.                                . rele modmddsr
  4829.  
  4830.                                From this example, delta data set ready is turned
  4831.                                on. 
  4832.  
  4833.  
  4834.  
  4835.  
  4836.  
  4837.  
  4838.  
  4839.  
  4840.  
  4841.  
  4842.  
  4843.  
  4844.  
  4845.  
  4846.  
  4847.  
  4848.  
  4849.  
  4850.  
  4851.  
  4852.  
  4853.  
  4854.  
  4855.  
  4856.  
  4857.  
  4858.  
  4859.  
  4860.  
  4861.                                         MODMTER
  4862.  
  4863.  
  4864. Syntax:                        MODMTER
  4865.  
  4866. Use:                           To determine the status of trailing edge ring
  4867.                                detector.
  4868.  
  4869. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4870.                                COM3 for com4.
  4871.  
  4872. Returns:                       The first character in the sending parameter will
  4873.                                have a "Y" if trailing edge ring detector is turned
  4874.                                on, a "N" if trailing edge ring detector is turned
  4875.                                off. If you did not pass the parameter correctly
  4876.                                (e.g. FOXLIB = "ZOM0"), your sending parameter
  4877.                                will be unchanged.
  4878.  
  4879. Example:                       . load c:\FOXLIB\modmter
  4880.                                . FOXLIB = "COM0"
  4881.                                . call modmter with FOXLIB
  4882.                                . ?substr(FOXLIB,1,1) = "Y"
  4883.                                .T.
  4884.                                . rele modu modmter
  4885.  
  4886.                                From this example, trailing edge ring detector is
  4887.                                turned on. 
  4888.  
  4889.  
  4890.  
  4891.  
  4892.  
  4893.  
  4894.  
  4895.  
  4896.  
  4897.  
  4898.  
  4899.  
  4900.  
  4901.  
  4902.  
  4903.  
  4904.  
  4905.  
  4906.  
  4907.  
  4908.  
  4909.  
  4910.  
  4911.  
  4912.  
  4913.  
  4914.  
  4915.                                         MODMDRLS
  4916.  
  4917.  
  4918. Syntax:                        MODMDRLS
  4919.  
  4920. Use:                           To determine the status of delta receive line signal
  4921.                                detect.
  4922.  
  4923. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4924.                                COM3 for com4.
  4925.  
  4926. Returns:                       The first character in the sending parameter will
  4927.                                have a "Y" if delta receive line signal detect is
  4928.                                turned on, a "N" if delta receive line signal detect
  4929.                                is turned off. If you did not pass the parameter
  4930.                                correctly (e.g. FOXLIB = "ZOM0"), your sending
  4931.                                parameter will be unchanged.
  4932.  
  4933. Example:                       . load c:\FOXLIB\modmdrls
  4934.                                . FOXLIB = "COM0"
  4935.                                . call modmdrls with FOXLIB
  4936.                                . ?substr(FOXLIB,1,1) = "Y"
  4937.                                .T.
  4938.                                . rele modu modmdrls
  4939.  
  4940.                                From this example, delta receive line signal detect
  4941.                                is turned on. 
  4942.  
  4943.  
  4944.  
  4945.  
  4946.  
  4947.  
  4948.  
  4949.  
  4950.  
  4951.  
  4952.  
  4953.  
  4954.  
  4955.  
  4956.  
  4957.  
  4958.  
  4959.  
  4960.  
  4961.  
  4962.  
  4963.  
  4964.  
  4965.  
  4966.  
  4967.  
  4968.  
  4969.                                         MODMCTS
  4970.  
  4971.  
  4972. Syntax:                        MODMCTS
  4973.  
  4974. Use:                           To determine the status of clear to send.
  4975.  
  4976. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  4977.                                COM3 for com4.
  4978.  
  4979. Returns:                       The first character in the sending parameter will
  4980.                                have a "Y" if clear to send is turned on, a "N" if
  4981.                                clear to send is turned off. If you did not pass the
  4982.                                parameter correctly (e.g. FOXLIB = "ZOM0"), your
  4983.                                sending parameter will be unchanged.
  4984.  
  4985. Example:                       . load c:\FOXLIB\modmcts
  4986.                                . FOXLIB = "COM0"
  4987.                                . call modmcts with FOXLIB
  4988.                                . ?substr(FOXLIB,1,1) = "Y"
  4989.                                .T.
  4990.                                . rele modu modmcts
  4991.  
  4992.                                From this example, clear to send is turned on. 
  4993.  
  4994.  
  4995.  
  4996.  
  4997.  
  4998.  
  4999.  
  5000.  
  5001.  
  5002.  
  5003.  
  5004.  
  5005.  
  5006.  
  5007.  
  5008.  
  5009.  
  5010.  
  5011.  
  5012.  
  5013.  
  5014.  
  5015.  
  5016.  
  5017.  
  5018.  
  5019.  
  5020.  
  5021.  
  5022.  
  5023.                                         MODMDSR
  5024.  
  5025.  
  5026. Syntax:                        MODMDSR
  5027.  
  5028. Use:                           To determine the status of data set ready.
  5029.  
  5030. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  5031.                                COM3 for com4.
  5032.  
  5033. Returns:                       The first character in the sending parameter will
  5034.                                have a "Y" if data set ready is turned on, a "N" if
  5035.                                data set ready is turned off. If you did not pass
  5036.                                the parameter correctly (e.g. FOXLIB =
  5037.                                "ZOM0"), your sending parameter will be unchanged.
  5038.  
  5039. Example:                       . load c:\FOXLIB\modmdsr
  5040.                                . FOXLIB = "COM0"
  5041.                                . call modmdsr with FOXLIB
  5042.                                . ?substr(FOXLIB,1,1) = "Y"
  5043.                                .T.
  5044.                                . rele modu modmdsr
  5045.  
  5046.                                From this example, data set ready is turned on. 
  5047.  
  5048.  
  5049.  
  5050.  
  5051.  
  5052.  
  5053.  
  5054.  
  5055.  
  5056.  
  5057.  
  5058.  
  5059.  
  5060.  
  5061.  
  5062.  
  5063.  
  5064.  
  5065.  
  5066.  
  5067.  
  5068.  
  5069.  
  5070.  
  5071.  
  5072.  
  5073.  
  5074.  
  5075.  
  5076.  
  5077.                                         MODMRI
  5078.  
  5079.  
  5080. Syntax:                        MODMRI
  5081.  
  5082. Use:                           To determine the status of ring indicator.
  5083.  
  5084. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  5085.                                COM3 for com4.
  5086.  
  5087. Returns:                       The first character in the sending parameter will
  5088.                                have a "Y" if ring indicator is turned on, a "N" if
  5089.                                ring indicator is turned off. If you did not pass
  5090.                                the parameter correctly (e.g. FOXLIB = "ZOM0"),
  5091.                                your sending parameter will be unchanged.
  5092.  
  5093. Example:                       . load c:\FOXLIB\modmri
  5094.                                . FOXLIB = "COM0"
  5095.                                . call modmri with FOXLIB
  5096.                                . ?substr(FOXLIB,1,1) = "Y"
  5097.                                .T.
  5098.                                . rele modu modmri
  5099.  
  5100.                                From this example, ring indicator is turned on. 
  5101.  
  5102.  
  5103.  
  5104.  
  5105.  
  5106.  
  5107.  
  5108.  
  5109.  
  5110.  
  5111.  
  5112.  
  5113.  
  5114.  
  5115.  
  5116.  
  5117.  
  5118.  
  5119.  
  5120.  
  5121.  
  5122.  
  5123.  
  5124.  
  5125.  
  5126.  
  5127.  
  5128.  
  5129.  
  5130.  
  5131.                                         MODMRLS
  5132.  
  5133.  
  5134. Syntax:                        MODMRLS
  5135.  
  5136. Use:                           To determine the status of receive line signal
  5137.                                detect.
  5138.  
  5139. Parameters:                    COM0 for com1, COM1 for com2, COM2 for com3, and
  5140.                                COM3 for com4.
  5141.  
  5142. Returns:                       The first character in the sending parameter will
  5143.                                have a "Y" if receive line signal detect is turned
  5144.                                on, a "N" if receive line signal detect is turned
  5145.                                off. If you did not pass the parameter correctly
  5146.                                (e.g. FOXLIB = "ZOM0"), your sending parameter
  5147.                                will be unchanged.
  5148.  
  5149. Example:                       . load c:\FOXLIB\modmrls
  5150.                                . FOXLIB = "COM0"
  5151.                                . call modmrls with FOXLIB
  5152.                                . ?substr(FOXLIB,1,1) = "Y"
  5153.                                .T.
  5154.                                . rele modu modmrls
  5155.  
  5156.                                From this example, receive line signal detect is
  5157.                                turned on. 
  5158.  
  5159.  
  5160.  
  5161.  
  5162.  
  5163.  
  5164.  
  5165.  
  5166.  
  5167.  
  5168.  
  5169.  
  5170.  
  5171.  
  5172.  
  5173.  
  5174.  
  5175.  
  5176.  
  5177.  
  5178.  
  5179.  
  5180.  
  5181.  
  5182.  
  5183.  
  5184.  
  5185.  
  5186.  
  5187.  
  5188.  
  5189.  
  5190.  
  5191.  
  5192.  
  5193.  
  5194.  
  5195.  
  5196.  
  5197.                                     MISCELLANEOUS COMMANDS
  5198.  
  5199.  
  5200.  
  5201.  
  5202.  
  5203.  
  5204.  
  5205.  
  5206.  
  5207.  
  5208.  
  5209.  
  5210.  
  5211.  
  5212.  
  5213.  
  5214.  
  5215.  
  5216.  
  5217.  
  5218.  
  5219.  
  5220.  
  5221.  
  5222.  
  5223.  
  5224.  
  5225.  
  5226.  
  5227.  
  5228.  
  5229.  
  5230.  
  5231.  
  5232.  
  5233.  
  5234.  
  5235.  
  5236.  
  5237.  
  5238.  
  5239.                                         CDROMDRV
  5240.  
  5241.  
  5242. Syntax:                        CDROMDRV
  5243.  
  5244. Use:                           To determine the presence of the MS CD-ROM
  5245.                                extensions (MSCDEX.exe).  If your application is
  5246.                                retrieving information from a CD-ROM, you should
  5247.                                first see if the extensions are loaded into memory.
  5248.  
  5249. Parameters:                    CDROM
  5250.  
  5251. Returns:                       The first character in the sending parameter will
  5252.                                have a "Y" if the extensions are present in memory,
  5253.                                and a "N" if they are not present.  If you did not
  5254.                                pass the parameter correctly (e.g. FOXLIB =
  5255.                                "ZDROM"), your sending parameter will be unchanged.
  5256.  
  5257. Example:                       . load c:\FOXLIB\cdromdrv
  5258.                                . FOXLIB = "CDROM"
  5259.                                . call cdromdrv with FOXLIB
  5260.                                . ?substr(FOXLIB,1,1) = "Y"
  5261.                                .T.
  5262.                                . rele modu cdromdrv
  5263.                                                                 
  5264.                                From the above example, the CD-ROM extension is
  5265.                                present in memory.
  5266.  
  5267. Example:                       if substr(FOXLIB,1,1) = "N"
  5268.                                   @ 1,0 Say "Error!  Need MS CD-ROM extensions."
  5269.                                   @ 2,0 Say "Exit from application, load MS CD-ROM"
  5270.                                   @ 3,0 Say "extensions, and re-start program."
  5271.                                endif
  5272.  
  5273.                                Use the above example to warn the computer user if
  5274.                                the CD-ROM extensions are not loaded into memory.
  5275.  
  5276. See:                           CDROMVER
  5277.  
  5278.  
  5279.  
  5280.  
  5281.  
  5282.  
  5283.  
  5284.  
  5285.  
  5286.  
  5287.  
  5288.  
  5289.  
  5290.  
  5291.  
  5292.  
  5293.                                         CDROMVER
  5294.  
  5295.  
  5296. Syntax:                        CDROMVER
  5297.  
  5298. Use:                           To determine the CD-ROM extension version.
  5299.  
  5300. Parameters:                    CDROM
  5301.  
  5302. Returns:                       The first character in the sending parameter will
  5303.                                have the CD-ROM major version number, and the second
  5304.                                character in the sending parameter will have the CD-
  5305.                                ROM minor version number if the CD-ROM extension
  5306.                                module is present in memory.  If the CD-ROM
  5307.                                extension module is not present in memory, you will
  5308.                                get garbage.  If you did not pass the parameter
  5309.                                correctly (e.g. FOXLIB = "ZDROM"), your sending
  5310.                                parameter will be unchanged.
  5311.  
  5312. Example:                       . load c:\FOXLIB\cdromdrv
  5313.                                . FOXLIB = "CDROM"
  5314.                                . call cdromdrv with FOXLIB
  5315.                                . ?substr(FOXLIB,1,1) = "Y"
  5316.                                .T.
  5317.                                . rele modu cdromdrv
  5318.  
  5319.                                . load c:\FOXLIB\cdromver
  5320.                                . FOXLIB = "CDROM"
  5321.                                . call cdromver with FOXLIB
  5322.                                . ?asc(substr(FOXLIB,1,1))
  5323.                                . 2
  5324.                                . ?asc(substr(FOXLIB,2,1))
  5325.                                . 10
  5326.                                . rele modu cdromver
  5327.  
  5328.                                From the above example, first verify that the CD-ROM
  5329.                                extension is present in memory.  If it is, determine
  5330.                                the CD-ROM extension version number.  In this
  5331.                                example it is 2.10.
  5332.  
  5333.  
  5334. See:                           CDROMDRV
  5335.  
  5336.  
  5337.  
  5338.  
  5339.  
  5340.  
  5341.  
  5342.  
  5343.  
  5344.  
  5345.  
  5346.  
  5347.                                         CURSCOL
  5348.  
  5349. Syntax:                        CURSCOL
  5350.  
  5351. Use:                           To determine the column position of the cursor.
  5352.  
  5353. Parameters:                    COL
  5354.  
  5355. Returns:                       The first character in the sending parameter will
  5356.                                have the column position of the cursor.  If you did
  5357.                                not pass the parameter correctly (e.g. FOXLIB =
  5358.                                "ZOL"), your sending parameter will be unchanged.
  5359.  
  5360. Example:                       . load c:\FOXLIB\curscol
  5361.                                . FOXLIB = "COL"
  5362.                                . call curscol with FOXLIB
  5363.                                . ?asc(substr(FOXLIB,1,1))
  5364.                                24
  5365.                                . rele modu curscol
  5366.  
  5367.                                From this example, the column position of the cursor
  5368.                                is at column 24.
  5369.  
  5370. See:                           CURSOR, CURSROW
  5371.  
  5372.  
  5373.  
  5374.  
  5375.  
  5376.  
  5377.  
  5378.  
  5379.  
  5380.  
  5381.  
  5382.  
  5383.  
  5384.  
  5385.  
  5386.  
  5387.  
  5388.  
  5389.  
  5390.  
  5391.  
  5392.  
  5393.  
  5394.  
  5395.  
  5396.  
  5397.  
  5398.  
  5399.  
  5400.  
  5401.                                         CURSROW
  5402.  
  5403.  
  5404. Syntax:                        CURSROW
  5405.  
  5406. Use:                           To determine the row position of the cursor.
  5407.  
  5408. Parameters:                    ROW
  5409.  
  5410. Returns:                       The first character in the sending parameter will
  5411.                                have the row position of the cursor.  If you did not
  5412.                                pass the parameter correctly (e.g. FOXLIB =
  5413.                                "ZOL"), your sending parameter will be unchanged.
  5414.  
  5415. Example:                       . load c:\FOXLIB\cursrow
  5416.                                . FOXLIB = "ROW"
  5417.                                . call cursrow with FOXLIB
  5418.                                . ?asc(substr(FOXLIB,1,1))
  5419.                                0
  5420.                                . rele modu cursrow
  5421.  
  5422.                                From this example, the row position of the cursor 
  5423.                                is at row 0.
  5424.  
  5425. See:                           CURSOR, CURSCOL
  5426.  
  5427.  
  5428.  
  5429.  
  5430.  
  5431.  
  5432.  
  5433.  
  5434.  
  5435.  
  5436.  
  5437.  
  5438.  
  5439.  
  5440.  
  5441.  
  5442.  
  5443.  
  5444.  
  5445.  
  5446.  
  5447.  
  5448.  
  5449.  
  5450.  
  5451.  
  5452.  
  5453.  
  5454.  
  5455.                                         CURSOR
  5456.  
  5457.  
  5458. Syntax:                        CURSOR
  5459.  
  5460. Use:                           To change the size of the cursor.
  5461.  
  5462. Parameters:                    L for line, H for half-block, and B for block
  5463.                                cursor.
  5464.  
  5465. Returns:                       The first character in the sending parameter will
  5466.                                have a "Y" if the cursor was changed.  If you did
  5467.                                not pass the parameter correctly (e.g. FOXLIB =
  5468.                                "Z"), your sending parameter will be unchanged.
  5469.  
  5470. Example:                       . load c:\FOXLIB\cursor
  5471.                                . FOXLIB = "H"
  5472.                                . call cursor with FOXLIB
  5473.                                . ?substr(FOXLIB,1,1) = "Y"
  5474.                                .T.
  5475.                                . rele modu cursor
  5476.  
  5477.                                From this example, the cursor was changed to half
  5478.                                block (▄).
  5479.  
  5480. See:                           CURSCOL, CURSROW
  5481.  
  5482.  
  5483.  
  5484.  
  5485.  
  5486.  
  5487.  
  5488.  
  5489.  
  5490.  
  5491.  
  5492.  
  5493.  
  5494.  
  5495.  
  5496.  
  5497.  
  5498.  
  5499.  
  5500.  
  5501.  
  5502.  
  5503.  
  5504.  
  5505.  
  5506.  
  5507.  
  5508.  
  5509.                                         DAYWEEK
  5510.  
  5511.  
  5512. Syntax:                        DAYWEEK
  5513.  
  5514. Use:                           To determine the day of the week.
  5515.  
  5516. Parameters:                    DAY
  5517.  
  5518. Returns:                       The first character in the sending parameter will
  5519.                                have the day of the week (0=Sunday, 1=Monday, etc.).
  5520.  
  5521.                                If you did not pass the parameter correctly (e.g.
  5522.                                FOXLIB = "ZAY"), your sending parameter will be
  5523.                                unchanged.
  5524.  
  5525. Example:                       . load c:\FOXLIB\dayweek
  5526.                                . FOXLIB = "DAY"
  5527.                                . call dayweek with FOXLIB
  5528.                                . ?asc(substr(FOXLIB,1,1))
  5529.                                3
  5530.                                . rele modu dayweek
  5531.                                
  5532.                                From this example, day of the week is Wednesday. 
  5533.                                Below is a list of all possible outcomes:
  5534.  
  5535.                                0 = Sunday
  5536.                                1 = Monday
  5537.                                2 = Tuesday
  5538.                                3 = Wednesday
  5539.                                4 = Thursday
  5540.                                5 = Friday
  5541.                                6 = Saturday
  5542.  
  5543.  
  5544.  
  5545.  
  5546.  
  5547.  
  5548.  
  5549.  
  5550.  
  5551.  
  5552.  
  5553.  
  5554.  
  5555.  
  5556.  
  5557.  
  5558.  
  5559.  
  5560.  
  5561.  
  5562.  
  5563.                                         MOUSECTR
  5564.  
  5565.  
  5566. Syntax:                        MOUSECTR
  5567.  
  5568. Use:                           To determine the status of the left mouse button. 
  5569.                                Use this command only when you want to test the
  5570.                                functionality of the center mouse button.  Have the
  5571.                                end-user hold down the center mouse button on any
  5572.                                non-responsive (i.e. blank area of the screen)
  5573.                                section of the computer display.
  5574.  
  5575. Parameters:                    MOUSE
  5576.  
  5577. Returns:                       The first character in the sending parameter will
  5578.                                have a "Y" if the cneter mouse button is down, and
  5579.                                a "N" if the center mouse button is not down.  If
  5580.                                you did not pass the parameter correctly (e.g.
  5581.                                FOXLIB = "ZOUSE"), your sending parameter will be
  5582.                                unchanged.
  5583.  
  5584. Example:
  5585.                                . load c:\FOXLIB\mousedrv
  5586.                                . FOXLIB = "MOUSE"
  5587.                                . call mousedrv with FOXLIB
  5588.                                . ?substr(FOXLIB,1,1) = "Y"
  5589.                                .T.
  5590.                                . rele modu mousedrv
  5591.  
  5592.                                . load c:\FOXLIB\mousectr
  5593.                                . FOXLIB = "MOUSE"
  5594.                                . call mousectr with FOXLIB
  5595.                                . ?substr(FOXLIB,1,1) = "Y"
  5596.                                .T.
  5597.                                . rele modu mousectr
  5598.  
  5599.                                From this example, the center mouse button is down.
  5600.  
  5601. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
  5602.                                MOUSELFT, MOUSESHW, MOUSEHID
  5603.  
  5604. Notes:                         First determine if the mouse driver has been loaded
  5605.                                into memory using the FOXLIB command "MOUSEDRV"
  5606.                                before using this command.  Otherwise, you will get
  5607.                                unwanted results.
  5608.  
  5609.                                This command only works with FoxPro since it is the
  5610.                                only FOX DBMS that comes with mouse support.
  5611.  
  5612.  
  5613.  
  5614.  
  5615.  
  5616.  
  5617.                                         MOUSEDRV
  5618.  
  5619.  
  5620. Syntax:                        MOUSEDRV
  5621.  
  5622. Use:                           To determine the presence of the mouse driver. 
  5623.  
  5624. Parameters:                    MOUSE
  5625.  
  5626. Returns:                       The first character in the sending parameter will
  5627.                                have a "Y" if the mouse driver is present in memory,
  5628.                                and a "N" if it is not present.  If you did not pass
  5629.                                the parameter correctly (e.g. FOXLIB
  5630.                                ="ZOUSE"), your sending parameter will be unchanged.
  5631.  
  5632. Example:                       . load c:\FOXLIB\mousedrv
  5633.                                . FOXLIB = "MOUSE"
  5634.                                . call mousedrv with FOXLIB
  5635.                                . ?substr(FOXLIB,1,1) = "Y"
  5636.                                .T.
  5637.                                . rele modu mousedrv
  5638.  
  5639.                                From this example, the mouse driver is present in
  5640.                                memory. 
  5641.  
  5642. Example:                       if substr(FOXLIB,1,1) = "N"
  5643.                                   @ 1,0 Say "Error!  Need mouse driver in memory."
  5644.                                   @ 2,0 Say "Exit from application, load mouse" 
  5645.                                   @ 3,0 Say "driver into memory, and re-start"
  5646.                                   @ 4,0 Say "program."
  5647.                                endif
  5648.  
  5649.                                If your application requires a mouse, first test to
  5650.                                see if the mouse driver has been loaded into memory.
  5651.  
  5652. See:                           MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
  5653.                                MOUSESHW, MOUSEHID, MOUSECTR
  5654.  
  5655.  
  5656.  
  5657.  
  5658.  
  5659.  
  5660.  
  5661.  
  5662.  
  5663.  
  5664.  
  5665.  
  5666.  
  5667.  
  5668.  
  5669.  
  5670.  
  5671.                                         MOUSEHID
  5672.  
  5673.  
  5674. Syntax:                        MOUSEHID
  5675.  
  5676. Use:                           To remove the mouse pointer from the display.
  5677.  
  5678. Parameters:                    MOUSE
  5679.  
  5680. Returns:                       Nothing.  If you did not pass the parameter
  5681.                                correctly (e.g. FOXLIB = "ZOUSE"), your sending
  5682.                                parameter will be unchanged.
  5683.  
  5684. Example:
  5685.                                . load c:\FOXLIB\mousedrv
  5686.                                . FOXLIB = "MOUSE"
  5687.                                . call mousedrv with FOXLIB
  5688.                                . ?substr(FOXLIB,1,1) = "Y"
  5689.                                .T.
  5690.                                . rele modu mousedrv
  5691.  
  5692.                                . load c:\FOXLIB\mousehid
  5693.                                . FOXLIB = "MOUSE"
  5694.                                . call mousehid with FOXLIB
  5695.                                . rele modu mousehid
  5696.  
  5697.                                From this example, the mouse pointer was removed
  5698.                                from the display.
  5699.  
  5700. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
  5701.                                MOUSELFT, MOUSESHW, MOUSECTR
  5702.  
  5703. Notes:                         First determine if the mouse driver has been loaded
  5704.                                into memory using the FOXLIB command "MOUSEDRV"
  5705.                                before using this command.  Otherwise, you will get
  5706.                                unwanted results.
  5707.  
  5708.                                This command only works with FoxPro since it is the
  5709.                                only FOX DBMS that comes with mouse support.
  5710.  
  5711.  
  5712.  
  5713.  
  5714.  
  5715.  
  5716.  
  5717.  
  5718.  
  5719.  
  5720.  
  5721.  
  5722.  
  5723.  
  5724.  
  5725.                                         MOUSELFT
  5726.  
  5727.  
  5728. Syntax:                        MOUSELFT
  5729.  
  5730. Use:                           To determine the status of the left mouse button. 
  5731.                                Use this command only when you want to test the
  5732.                                functionality of the left mouse button.  Have the
  5733.                                end-user hold down the left mouse button on any non-
  5734.                                responsive (i.e. blank area of the screen) section
  5735.                                of the computer display.
  5736.  
  5737. Parameters:                    MOUSE
  5738.  
  5739. Returns:                       The first character in the sending parameter will
  5740.                                have a "Y" if the left mouse button is down, and a
  5741.                                "N" if the left mouse button is not down.  If you
  5742.                                did not pass the parameter correctly (e.g. FOXLIB
  5743.                                = "ZOUSE"), your sending parameter will be
  5744.                                unchanged.
  5745.  
  5746. Example:
  5747.                                . load c:\FOXLIB\mousedrv
  5748.                                . FOXLIB = "MOUSE"
  5749.                                . call mousedrv with FOXLIB
  5750.                                . ?substr(FOXLIB,1,1) = "Y"
  5751.                                .T.
  5752.                                . rele modu mousedrv
  5753.  
  5754.                                . load c:\FOXLIB\mouselft
  5755.                                . FOXLIB = "MOUSE"
  5756.                                . call mouselft with FOXLIB
  5757.                                . ?substr(FOXLIB,1,1) = "Y"
  5758.                                .T.
  5759.                                . rele modu mouselft
  5760.  
  5761.                                From this example, the left mouse button is down.
  5762.  
  5763. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
  5764.                                MOUSESHW, MOUSEHID, MOUSECTR
  5765.  
  5766. Notes:                         First determine if the mouse driver has been loaded
  5767.                                into memory using the FOXLIB command "MOUSEDRV"
  5768.                                before using this command.  Otherwise, you will get
  5769.                                unwanted results.
  5770.  
  5771.                                This command only works with FoxPro since it is the
  5772.                                only FOX DBMS that comes with mouse support.
  5773.  
  5774.  
  5775.  
  5776.  
  5777.  
  5778.  
  5779.                                         MOUSELNG
  5780.  
  5781.  
  5782. Syntax:                        MOUSELNG
  5783.  
  5784. Use:                           To determine the mouse language.
  5785.  
  5786. Parameters:                    MOUSE
  5787.  
  5788. Returns:                       The first character in the sending parameter will
  5789.                                have the language number if the mouse driver is
  5790.                                present in memory, and garbage if the mouse driver
  5791.                                is not present.  If you did not pass the parameter
  5792.                                correctly (e.g. FOXLIB = "ZOUSE"), your sending
  5793.                                parameter will be unchanged.
  5794.  
  5795. Example:
  5796.                                . load c:\FOXLIB\mousedrv
  5797.                                . FOXLIB = "MOUSE"
  5798.                                . call mousedrv with FOXLIB
  5799.                                . ?substr(FOXLIB,1,1) = "Y"
  5800.                                .T.
  5801.                                . rele modu mousedrv
  5802.  
  5803.                                . load c:\FOXLIB\mouselng
  5804.                                . FOXLIB = "MOUSE"
  5805.                                . call mouselng with FOXLIB
  5806.                                . ?asc(substr(FOXLIB,1,1))
  5807.                                . 0
  5808.                                . rele modu mouselng
  5809.  
  5810.                                From this example, the mouse language is English. 
  5811.                                Below is a table of all possible outcomes.
  5812.  
  5813.                                0 = English
  5814.                                1 = French
  5815.                                2 = Dutch
  5816.                                3 = German
  5817.                                4 = Swedish
  5818.                                5 = Finnish
  5819.                                6 = Spanish
  5820.                                7 = Portuguese
  5821.                                8 = Italian
  5822.  
  5823. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSERHT, MOUSELFT,
  5824.                                MOUSESHW, MOUSEHID, MOUSECTR
  5825.  
  5826. Notes:                         First determine if the mouse driver has been loaded
  5827.                                into memory using the FOXLIB command "MOUSEDRV"
  5828.                                before using this command.  Otherwise, you will get
  5829.                                unwanted results.
  5830.  
  5831.  
  5832.  
  5833.                                         MOUSERHT
  5834.  
  5835.  
  5836. Syntax:                        MOUSERHT
  5837.  
  5838. Use:                           To determine the status of the right mouse button.
  5839.                                Use this command only when you want to test the
  5840.                                functionality of the right mouse button.  Have the
  5841.                                end-user hold down the right mouse button on any
  5842.                                non-responsive (i.e. blank area of the screen)
  5843.                                section of the computer display.
  5844.  
  5845. Parameters:                    MOUSE
  5846.  
  5847. Returns:                       The first character in the sending parameter will
  5848.                                have a "Y" if the right mouse button is down, and 
  5849.                                a "N" if the right mouse button is not down.  If you
  5850.                                did not pass the parameter correctly (e.g. FOXLIB
  5851.                                = "ZOUSE"), your sending parameter will be
  5852.                                unchanged.
  5853.  
  5854. Example:
  5855.                                . load c:\FOXLIB\mousedrv
  5856.                                . FOXLIB = "MOUSE"
  5857.                                . call mousedrv with FOXLIB
  5858.                                . ?substr(FOXLIB,1,1) = "Y"
  5859.                                .T.
  5860.                                . rele modu mousedrv
  5861.  
  5862.                                . load c:\FOXLIB\mouserht
  5863.                                . FOXLIB = "MOUSE"
  5864.                                . call mouserht with FOXLIB
  5865.                                . ?substr(FOXLIB,1,1) = "Y"
  5866.                                .T.
  5867.                                . rele modu mouserht
  5868.  
  5869.                                From this example, the right mouse button is down.
  5870.  
  5871. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSELFT,
  5872.                                MOUSESHW, MOUSEHID, MOUSECTR
  5873.  
  5874. Notes:                         First determine if the mouse driver has been loaded
  5875.                                into memory using the FOXLIB command "MOUSEDRV"
  5876.                                before using this command.  Otherwise, you will get
  5877.                                unwanted results.
  5878.  
  5879.                                This command only works with FoxPro since it is the
  5880.                                only FOX DBMS that comes with mouse support.
  5881.  
  5882.  
  5883.  
  5884.  
  5885.  
  5886.  
  5887.                                         MOUSESHW
  5888.  
  5889.  
  5890. Syntax:                        MOUSESHW
  5891.  
  5892. Use:                           To Display the mouse pointer.
  5893.  
  5894. Parameters:                    MOUSE
  5895.  
  5896. Returns:                       Nothing.  If you did not pass the parameter
  5897.                                correctly (e.g. FOXLIB = "ZOUSE"), your sending
  5898.                                parameter will be unchanged.
  5899.  
  5900. Example:
  5901.                                . load c:\FOXLIB\mousedrv
  5902.                                . FOXLIB = "MOUSE"
  5903.                                . call mousedrv with FOXLIB
  5904.                                . ?substr(FOXLIB,1,1) = "Y"
  5905.                                .T.
  5906.                                . rele modu mousedrv
  5907.  
  5908.                                . load c:\FOXLIB\mouseshw
  5909.                                . FOXLIB = "MOUSE"
  5910.                                . call mouseshw with FOXLIB
  5911.                                . rele modu mouseshw
  5912.  
  5913.                                From this example, the mouse pointer is displayed. 
  5914.  
  5915. See:                           MOUSEDRV, MOUSETYP, MOUSEVER, MOUSELNG, MOUSERHT,
  5916.                                MOUSELFT, MOUSEHID, MOUSECTR
  5917.  
  5918. Notes:                         First determine if the mouse driver has been loaded
  5919.                                into memory using the FOXLIB command "MOUSEDRV"
  5920.                                before using this command.  Otherwise, you will get
  5921.                                unwanted results.
  5922.  
  5923.                                This command only works with FoxPro since it is the
  5924.                                only FOX DBMS that comes with mouse support.
  5925.  
  5926.  
  5927.  
  5928.  
  5929.  
  5930.  
  5931.  
  5932.  
  5933.  
  5934.  
  5935.  
  5936.  
  5937.  
  5938.  
  5939.  
  5940.  
  5941.                                         MOUSETYP
  5942.  
  5943.  
  5944. Syntax:                        MOUSETYP
  5945.  
  5946. Use:                           To determine the mouse type.
  5947.  
  5948. Parameters:                    MOUSE
  5949.  
  5950. Returns:                       The first character in the sending parameter will
  5951.                                have the mouse type if the mouse driver is present
  5952.                                in memory, and garbage if the mouse driver is not
  5953.                                present.  If you did not pass the parameter
  5954.                                correctly (e.g. FOXLIB = "ZOUSE"), your sending
  5955.                                parameter will be unchanged.
  5956.  
  5957. Example:
  5958.                                . load c:\FOXLIB\mousedrv
  5959.                                . FOXLIB = "MOUSE"
  5960.                                . call mousedrv with FOXLIB
  5961.                                . ?substr(FOXLIB,1,1) = "Y"
  5962.                                .T.
  5963.                                . rele modu mousedrv
  5964.  
  5965.                                . load c:\FOXLIB\mousetyp
  5966.                                . FOXLIB = "MOUSE"
  5967.                                . call mousetyp with FOXLIB
  5968.                                . ?asc(substr(FOXLIB,1,1))
  5969.                                . 2
  5970.                                . rele modu mousetyp
  5971.  
  5972.                                From this example, the mouse type is serial mouse. 
  5973.                                Below is a table of all possible outcomes.
  5974.  
  5975.                                1 = Bus mouse
  5976.                                2 = Serial mouse
  5977.                                3 = InPort mouse
  5978.                                4 = PS/2 mouse
  5979.                                5 = HP mouse
  5980.  
  5981. See:                           MOUSEDRV, MOUSEVER, MOUSELNG, MOUSERHT, MOUSELFT,
  5982.                                MOUSESHW, MOUSEHID, MOUSECTR
  5983.  
  5984. Notes:                         First determine if the mouse driver has been loaded
  5985.                                into memory using the FOXLIB command "MOUSEDRV"
  5986.                                before using this command.  Otherwise, you will get
  5987.                                unwanted results.
  5988.  
  5989.  
  5990.  
  5991.  
  5992.  
  5993.  
  5994.  
  5995.                                         MOUSEVER
  5996.  
  5997.  
  5998. Syntax:                        MOUSEVER
  5999.  
  6000. Use:                           To determine the mouse version.
  6001.  
  6002. Parameters:                    MOUSE
  6003.  
  6004. Returns:                       The first character in the sending parameter will
  6005.                                have the mouse major version number, and the second
  6006.                                character in the sending parameter will have the
  6007.                                mouse minor version number if the mouse driver is
  6008.                                present in memory.  If the mouse driver is not
  6009.                                present in memory, you will get garbage.  If you did
  6010.                                not pass the parameter correctly (e.g. FOXLIB =
  6011.                                "ZOUSE"), your sending parameter will be unchanged.
  6012.  
  6013. Example:
  6014.                                . load c:\FOXLIB\mousedrv
  6015.                                . FOXLIB = "MOUSE"
  6016.                                . call mousedrv with FOXLIB
  6017.                                . ?substr(FOXLIB,1,1) = "Y"
  6018.                                .T.
  6019.                                . rele modu mousedrv
  6020.  
  6021.                                . load c:\FOXLIB\mousever
  6022.                                . FOXLIB = "MOUSE"
  6023.                                . call mousever with FOXLIB
  6024.                                . ?asc(substr(FOXLIB,1,1))
  6025.                                . 6
  6026.                                . ?asc(substr(FOXLIB,2,1))
  6027.                                . 36
  6028.                                . rele modu mousever
  6029.  
  6030.                                From this example, the mouse version number is 6.36.
  6031.  
  6032.                                Please note that our mouse displayed version 6.24
  6033.                                when we executed mouse.com from the DOS prompt. 
  6034.                                When we used the FOXLIB command MOUSEVER from
  6035.                                within FOX it returned version 6.36.  
  6036.  
  6037. See:                           MOUSEDRV, MOUSETYP, MOUSELNG, MOUSERHT, MOUSELFT,
  6038.                                MOUSESHW, MOUSEHID, MOUSECTR
  6039.  
  6040. Notes:                         First determine if the mouse driver has been loaded
  6041.                                into memory using the FOXLIB command "MOUSEDRV"
  6042.                                before using this command.  Otherwise, you will get
  6043.                                unwanted results.
  6044.  
  6045.  
  6046.  
  6047.  
  6048.  
  6049.                                         NUMCHAR
  6050.  
  6051.  
  6052. Syntax:                        NUMCHAR
  6053.  
  6054. Use:                           To determine if the parameter (byte) passed is a
  6055.                                character or a number.
  6056.  
  6057. Parameters:                    Character or number.
  6058.  
  6059. Returns:                       The first character in the sending parameter will
  6060.                                have a "C" if the parameter passed is a character,
  6061.                                a "N" if the parameter passed is a number.  If you
  6062.                                did not pass the parameter correctly (e.g. FOXLIB
  6063.                                = ""), your sending parameter will be unchanged.
  6064.  
  6065. Example:                       . load c:\FOXLIB\numchar
  6066.                                . FOXLIB = "A"
  6067.                                . call numchar with FOXLIB
  6068.                                . ?substr(FOXLIB,1,1) = "C"
  6069.                                .T.
  6070.                                . rele modu numchar
  6071.  
  6072.                                From this example, the parameter passed is a
  6073.                                character.
  6074.  
  6075. Example:                       . load c:\FOXLIB\numchar
  6076.                                . FOXLIB = "0"
  6077.                                . call numchar with FOXLIB
  6078.                                . ?substr(FOXLIB,1,1) = "N"
  6079.                                .T.
  6080.                                . rele modu numchar
  6081.  
  6082.                                From this example, the parameter passed is a number.
  6083.  
  6084.  
  6085.  
  6086.  
  6087.  
  6088.  
  6089.  
  6090.  
  6091.  
  6092.  
  6093.  
  6094.  
  6095.  
  6096.  
  6097.  
  6098.  
  6099.  
  6100.  
  6101.  
  6102.  
  6103.                                         PRNTSCRN
  6104.  
  6105.  
  6106. Syntax:                        PRNTSCRN
  6107.  
  6108. Use:                           To print the ASCII contents on the monitor (screen).
  6109.  
  6110. Parameters:                    None
  6111.  
  6112. Returns:                       Nothing.
  6113.  
  6114. Example:                       . load c:\FOXLIB\prntscrn
  6115.                                . call prntscrn
  6116.                                . rele modu prntscrn
  6117.                                                                 
  6118.                                From this example, the ASCII contents on the monitor
  6119.                                (screen) are sent to the printer.
  6120.  
  6121. Notes:                         Make sure the printer is turned on and is ready to
  6122.                                accept the screen output.  Otherwise, you could
  6123.                                unwanted results.
  6124.  
  6125.  
  6126.  
  6127.  
  6128.  
  6129.  
  6130.  
  6131.  
  6132.  
  6133.  
  6134.  
  6135.  
  6136.  
  6137.  
  6138.  
  6139.  
  6140.  
  6141.  
  6142.  
  6143.  
  6144.  
  6145.  
  6146.  
  6147.  
  6148.  
  6149.  
  6150.  
  6151.  
  6152.  
  6153.  
  6154.  
  6155.  
  6156.  
  6157.                                         XMSDRV
  6158.  
  6159.  
  6160. Syntax:                        XMSDRV
  6161.  
  6162. Use:                           To determine the presence of the HIMEM.SYS driver. 
  6163.  
  6164. Parameters:                    XMSDRV
  6165.  
  6166. Returns:                       The first character in the sending parameter will
  6167.                                have a "Y" if the driver is present in memory, and
  6168.                                a "N" if it is not present.  If you did not pass the
  6169.                                parameter correctly (e.g. FOXLIB = "ZMSDRV"), your
  6170.                                sending parameter will be unchanged.
  6171.  
  6172. Example:                       . load c:\FOXLIB\xmsdrv
  6173.                                . FOXLIB = "XMSDRV"
  6174.                                . call xmsdrv with FOXLIB
  6175.                                . ?substr(FOXLIB,1,1) = "Y"
  6176.                                .T.
  6177.                                . rele modu xmsdrv
  6178.                                                                 
  6179.                                From this example, the HIMEM.SYS driver is present
  6180.                                in memory.
  6181.  
  6182.  
  6183.  
  6184.  
  6185.  
  6186.  
  6187.  
  6188.  
  6189.  
  6190.  
  6191.  
  6192.  
  6193.  
  6194.  
  6195.  
  6196.  
  6197.  
  6198.  
  6199.  
  6200.  
  6201.  
  6202.  
  6203.  
  6204.  
  6205.  
  6206.  
  6207.  
  6208.  
  6209.  
  6210.  
  6211. BIOSDATE ........... Page 35
  6212. CAPSOFF ............ Page 66
  6213. CAPSON ............. Page 69
  6214. CAPSSTAT ........... Page 60
  6215. CDROMDRV ........... Page 98
  6216. CDROMVER ........... Page 99
  6217. COM1200 ............ Page 74
  6218. COM2400 ............ Page 75
  6219. COM300 ............. Page 73
  6220. COM4800 ............ Page 76
  6221. COM9600 ............ Page 77
  6222. COMBID ............. Page 83
  6223. COMDR .............. Page 79
  6224. COMFE .............. Page 82
  6225. COMOE .............. Page 80
  6226. COMPE .............. Page 81
  6227. COMSTAT ............ Page 78
  6228. COMTHR ............. Page 84
  6229. COMTOE ............. Page 86
  6230. COMTSR ............. Page 85
  6231. CONVMEM ............ Page 36
  6232. CREATDIR ........... Page 23
  6233. CURSCOL ............ Page 100
  6234. CURSOR ............. Page 102
  6235. CURSROW ............ Page 101
  6236. DAYWEEK ............ Page 103
  6237. DOSVERS ............ Page 24
  6238. DRIVERDY ........... Page 25
  6239. EXTMEM ............. Page 37
  6240. GAMEADAP ........... Page 38
  6241. GETATTR ............ Page 27
  6242. GETDRIVE ........... Page 26
  6243. GETVERFY ........... Page 28
  6244. INSSTAT ............ Page 61
  6245. LEFTSHFT ........... Page 62
  6246. LPTINIT ............ Page 87
  6247. LPTSTAT ............ Page 88
  6248. MATHCOPR ........... Page 39
  6249. MCA ................ Page 40
  6250. MODMCTS ............ Page 93
  6251. MODMDCTS ........... Page 89
  6252. MODMDDSR ........... Page 90
  6253. MODMDRLS ........... Page 92
  6254. MODMDSR ............ Page 94
  6255. MODMRI ............. Page 95
  6256. MODMRLS ............ Page 96
  6257. MODMTER ............ Page 91
  6258. MOUSECTR ........... Page 104
  6259. MOUSEDRV ........... Page 105
  6260. MOUSEHID ........... Page 106
  6261. MOUSELFT ........... Page 107
  6262. MOUSELNG ........... Page 108
  6263. MOUSERHT ........... Page 109
  6264. MOUSESHW ........... Page 110
  6265. MOUSETYP ........... Page 111
  6266. MOUSEVER ........... Page 112
  6267. NODRIVES ........... Page 41
  6268. NUMCHAR ............ Page 113
  6269. NUMOFF ............. Page 67
  6270. NUMON .............. Page 70
  6271. NUMSTAT ............ Page 63
  6272. PARALLEL ........... Page 55
  6273. PC ................. Page 43
  6274. PCAT ............... Page 45
  6275. PCBUS .............. Page 42
  6276. PCCONV ............. Page 48
  6277. PCJR ............... Page 46
  6278. PCXT ............... Page 44
  6279. PCXT286 ............ Page 47
  6280. PRNTSCRN ........... Page 114
  6281. PS2M30 ............. Page 49
  6282. PS2M50 ............. Page 50
  6283. PS2M55 ............. Page 51
  6284. PS2M60 ............. Page 52
  6285. PS2M70 ............. Page 53
  6286. PS2M80 ............. Page 54
  6287. REALTIME ........... Page 56
  6288. REMOVDIR ........... Page 29
  6289. RGHTSHFT ........... Page 64
  6290. SCRLOFF ............ Page 68
  6291. SCRLON ............. Page 71
  6292. SCRLSTAT ........... Page 65
  6293. SCRNSIZE ........... Page 57
  6294. SERIAL ............. Page 58
  6295. SETATTR ............ Page 32
  6296. SETDIR ............. Page 30
  6297. SETDRIVE ........... Page 31
  6298. SETVERFY ........... Page 33
  6299. XMSDRV ............. Page 115
  6300.